XTech 2006 news

Newsletter sign-up


RSS and Atom feed icon News feeds

Using XSLT and XQuery for life-size applications

Michael Kay (Saxonica Limited)
Core technologies St. John 1

This session surveys the strengths and weaknesses of the XSLT 2.0 and XQuery 1.0 languages when it comes to writing real-life, sizeable applications for performing data transformations: especially factors such as error handling, debugging, performance, reuse and customization of code, relationships with XML Schema and other technologies such as XForms, and the use of pipeline-based application architectures. It will be based on actual case studies of real applications built using both technologies by the speaker’s consulting clients, suitably abstracted.

There’s a lot more practical experience of building large applications with XSLT than there is with XQuery, because XSLT had a head start of six years or more. One can also expect XQuery to improve in this area over the next 12 months, because facilities needed for programming-in-the-large will tend to appear as the products acquire greater maturity. Nevertheless, it’s starting to become possible to collect experience of how XQuery application development scales up.

The analysis can be broken down into four parts.

(1) Reuse capabilities. This includes facilities for making code modular, use of function or template libraries, facilities for overriding or specializing generic code with custom variations, and the ability to do all this while retaining good code structure.

(2) Error handling both during development and in production running.

(3) Performance. What are the high-level factors that determine the performance of large-scale XML applications?

(4) Ability to deploy the two languages as part of a pipeline-based architecture in which the overall application is structured as a sequence of transformation steps, including steps that involve other technologies such as schema validation and XForms.

In some of these areas XSLT and XQuery show quite similar characteristics, in other areas they have marked differences. The aim of the talk is not simply to stage a beauty contest between the two languages, rather it is aimed at showing where both languages still have limitations, and the kind of ways in which developers can work around these limitations to create robust and maintainable applications using either language – or both in combination.

Chair: Eric Prud'hommeaux