XSLT and XQuery


XML makes it possible to store content in a standardized format that can be converted to a variety of output media using a broad choice of technologies. Most of these technologies build on related W3C standards with both commercial and open source tools support. XSLT lets you define a transformation of a set of documents into a particular format, so that three XSLT stylesheets could create published products from the same content for three different media. The XQuery language lets you pull subsets of XML content from huge repositories, so that XML databases that support XQuery can (among other things) provide dynamic publications customized for different customers.

The classes in this course will show you what you need to put XSLT and XQuery to work, as we look at efficient and effective development practices, how to write test-driven XSLT applications, and where XSLT, XQuery, and related technologies best fit into the application architecture of a larger system.

Because the "Hands-on Introduction to XML" course will provide introductory material on XSLT and XQuery, classes in this course will focus on helping existing XSLT and/or XQuery developers get the most out of their code and their development time.

Faculty Board member Priscilla Walms­ley teaches, as well as Faculty members Tony Gra­ham, Dr. Jeni Tennison, and Dr. Michael Kay.

Classes for 2011

Querying XML Databases with XQuery

Taught by Priscilla Walmsley.

This class will provide an overview of the capabilities and use cases of XML databases, examining some of the database products that support XML and how they are being used. It will then cover the role of XQuery among other XML technologies in the querying of XML databases.

As a group, the class will build a simple search application using XQuery and an XML database (eXist). For this part of the class, we suggest you bring a laptop you can type on easily, or be prepared to share with someone else. This will provide an opportunity for attendees to learn the syntax and capabilities of XQuery, as well as see it in action. Major features of the XQuery language such as FLWOR expressions, XML constructors, and user-defined functions will be explained.

Lunch break, day one


XSLT 1.0 to 2.0 Conversion Workshop

Taught by Dr. Michael Kay

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 potential backward incompatibilities associated with upgrading stylesheets from 1.0 to 2.0.

After reviewing the available 2.0 features, we will do a group exercise of reviewing existing 1.0 stylesheets and making recommendations for improving their design, using XSLT 2.0 features when appropriate. We encourage attendees to submit their own XSLT transformations before or during the session to give us real-world examples to review.

End of day one


Developing and Testing in XSLT

Taught by Jeni Tennison and Tony Graham

Unit tests, profiling, debugging and, increasingly, test-driven development are part of the bread and butter of working with other programming languages but are not always so with XSLT or XQuery.

In test-driven development, which is a fundamental part of agile approaches to software development, the 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 and Tony Graham will describe both the state of the art in testing and debugging XSLT and XQuery and how test-driven development applies to XSLT and XQuery development. In particular, they will focus on the use of the XSpec testing framework.

Lunch break, day two


XSLT Efficiency and Effectiveness

Taught by Dr. Michael Kay and Priscilla Walmsley

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 session, 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.