XSLT and XQuery 2014



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.

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

This course is chaired by Priscilla Walmsley and taught by Adam Retter, Florent Georges, Michael Kay, and Priscilla Walmsley.

Classes for 2014

The XSLT and XQuery course runs on and .

XSLT and XQuery Functions in Depth

Taught by Priscilla Walmsley.

Functions in XSLT and XQuery range from the simple to the highly complex. Regardless of their complexity, there are a number of best practices that can make functions more useful, easier to understand, and more graceful at handling errors. After a brief review of the syntax of functions, these best practices will be covered, along with examples. The students will then develop a number of XSLT and XQuery functions as a group, starting from requirements through to testing. We will look at a variety of ways to address the same requirement and discuss the advantages and disadvantages of each approach. Students are welcome to provide requirements for functions that are interesting or useful to them.

Querying XML Databases with XQuery

Taught by Adam Retter.

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). 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.

XSLT Efficiency and Effectiveness

Taught by Michael Kay.

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. This interactive session on effective stylesheet development 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.

XSLT 3.0 and XQuery 3.0

Taught by Florent Georges.

XSLT 3.0 and XQuery 3.0 come with a lot of new, powerful features.

XPath 3.0 itself comes with one of the most useful of them: function items and higher-order functions; that is, the ability to manipulate functions and pass them around, calling them dynamically and define new anonymous inline functions. XQuery 3.0 has numerous additions on its own, among them grouping, windowing, try/catch, and private functions. For XSLT 3.0, the biggest addition is the support for streaming transformation. Florent will also introduce the packages, the evaluation of dynamically computed XPath expressions, the extension of template rules to atomic values, the try/catch mechanism and the new xsl:assert instruction.