My Blog

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

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

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

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!