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. Intermediate XSLT developers looking for more hands-on material should consider the Hands-on Digital Publishing course.
Classes for 2016
The XSLT and XQuery course runs on and .
- Improving stylesheets through the use of advanced features
Taught by Priscilla Walmsley.
Most XSLT developers stick to a familiar core set of XPath and XSLT instructions and functions. There are a number of advanced features, many of them introduced in version 2.0, that appear only rarely in stylesheets even though they can be very useful in certain situations. In this course, we will explore some of these less-used features, showing interactively how they can be applied to improve existing XSLT stylesheets. XPath features covered will include operators like intersect and except, << and >>, quantified expressions, and 2.0 functions that can significantly simplify your stylesheets. XSLT features covered will include grouping, regular expression matching and advanced modularization using modes and instructions like xsl:apply-imports and xsl:next-match.
- 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 and XQuery Performance Workshop
Taught by Michael Kay.
Run-time performance isn’t always your most important objective, but sometimes getting performance right can be critical to the project. This session will be a performance workshop: we’ll look at the methodology, techniques, and tools that you can use to ensure your XSLT or XQuery code (and your XML application in general) meets its performance requirements. This will be an interactive session where we’ll explore different ideas by trying them out and measuring the effect. If you’re planning to come, consider whether you have any material that we could study during the workshop, and if so, let us know in advance: if the problems we tackle come from real life, we will all learn more than if we use a textbook exercise. Also think about whether there are any burning questions you want answered (a couple of years ago, we studied the effect of schema-awareness on transformation time, for example — this year it might be streaming or parallel processing).
- 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.