My Blog

XSLT and XQuery


XSLT lets you define a transformation of a type of document into a particular format, so that different XSLT stylesheets could create published products from the same XML content for different media.

The XQuery language lets you extract subsets out of any XML content from a single document to huge repositories used to provide dynamic publications tailored for different customers.

Native XML databases and other storage technologies provide facilities for different classes of XML repository, according to requirements, and allow different levels of granularity to suit both simple and complex storage demands.

Retrieval from XML storage often means the combination of several XML-based technologies, including XQuery and XSLT, and may involve the transformation of the information through several formats (pipelining).

The classes in this course will show you what you need to put XSLT and XQuery to work, and how to match your business requirements with the storage and retrieval architectures available. They will also enable you to take your XSLT and XQuery development to the next level by looking at efficient development practices; and to take best advantage of how the related technologies fit into the application architecture of larger systems.

Because the “Hands-on Introduction to XML” course provides introductory material on XSLT, the XSLT classes in this course will focus on helping existing XSLT developers get the most out of their stylesheets and their development time.

Classes for 2010

XML Storage

Taught by: Peter Flynn

There are many ways of storing XML documents and collection: simple filesystems, content management applications, native-XML databases, non-XML databases, applications in the cloud, and databases which expose non-XML data as XML. This class explains the advantages and disadvantages of various methods, and how the requirements of schema selection, application design, data architecture, and demands of XML processing can affect the choice of storage architecture (and vice versa).

XML Retrieval

Taught by: Norm Walsh

The flip side of storing XML documents is retrieval. This class will discuss the various ways in which XML documents can be accessed. The exact nature of the methods varies with the nature of the repository, the purpose of the retrieval, and the language or application being used. We’ll review a number of transport protocols, consider how XSLT and XQuery can access documents, how facilities like WebDav can be used, and what if any abstractions apply universally to XML retrieval.

Lunch break, day one


Getting the Most out of XSLT 2.0

Taught by: Priscilla Walmsley

XSLT 2.0 is a significant improvement over XSLT 1.0. This class will provide a tour of the new features in XSLT 2.0, allowing you to make the most of its advanced capabilities. We will talk about grouping, user-defined functions, regular expression handling, and typing and schema support. We will also discuss some of the challenges associated with upgrading stylesheets from 1.0 to 2.0.


Taught by: Priscilla Walmsley

This class will provide an overview of the capabilities, use cases and syntax of XQuery. After putting XQuery in context, we will take a brief tour of the XQuery/XPath data model and basic expressions. We will then dive right into writing queries using path expressions, FLWOR expressions and XML constructors.

End of day, day one


Test-Driven XSLT Development

Taught by: Jeni Tennison

Test-driven development is a fundamental part of agile approaches to software development. Developers write tests that describe the desired behaviour of their application, then write code that meets the tests.

This style of development keeps code focused, avoids breaking existing code and facilitates refactoring. In this session, Jeni Tennison will describe how test-driven development applies to XSLT and XQuery development and in particular the use of the XSpec testing framework.

Architectures and Advantages

Taught by Dr. Michael Kay

When building large web-based applications, a variety of XML-based technologies such as XSLT, XQuery, XProc, and XForms can provide valuable building blocks — but so can Java frameworks and data binding, relational databases, and other older and newer technologies. How do you select which pieces fit together best to meet the needs of your application? What’s the best way to move data between the XML-aware components of the system. How do you make these talk to the non-XML-aware parts? When should data be validated, and how? In this class, Michael Kay draws on upon a long history of application architecture development experience to tell you about the key issues to consider as you assemble a large-scale web application.

Lunch break, day two


Workshop: XSLT Efficiency and Effectiveness

Effective software development is a two-sided coin: on the one hand, you want to develop systems that run quickly and are easy to maintain; on the other hand, you want to make the best use of your own time in building these systems, getting to that fast, maintainable system as quickly as possible. In this two-part workshop, several leading experts on XSLT and related technologies will head up interactive sessions on effective stylesheet development. The discussion will focus on best practices for building stylesheets that run quickly, are easy to maintain, handle unexpected conditions gracefully, and are flexible enough to be easily customized. Bring your own ideas and questions, and we’ll compile, sort, and discuss them to develop a series of recommendations to get the best out of your future XSLT development.