XSLT and XQuery 2013



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, Priscilla Walmsley, and Tony Graham.

Classes for 2013

The XSLT and XQuery course runs on and .

Improving stylesheets through the use of advanced features

Taught by Priscilla Walmsley and Tony Graham.

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

Trends in XSLT/XQuery

Taught by Florent Georges.

XSLT 3.0 and XQuery 3.0 are going to come with a lot of new, powerful features. Expected to be released by the end of 2013, this version 3.0 will bring those new tools to the XML developers.

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 Florent will introduce 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. As the final specifications have not been released yet, those features might still change, even though some are very stable now. This introduction will give you an overview of the new features that you will be able to use soon. Processors even implement some of them already!

The class will also cover XProc, the W3C XML Pipeline language for describing operations to be performed on XML documents. Released in May 2010, XProc was the missing piece in the XML stack. Every time you used more than one XML technology, you had to use another language, like Java or .NET, in order to glue them together. You then had to know the APIs very well and to be careful in connected all the pieces together, again and again. XProc allows you to describe your processing as a network of steps, between which flows your XML documents. XProc describes the processing in a declarative way. No more micro plumbing needed in other languages, just use XProc for your pipelining needs!