My Blog

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

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

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