XSLT, XSL-FO, and XQuery



XML appeals to publishers because it makes it possible to store content in a standardized format that can be converted to a variety of output media using a 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 query language lets you pull subsets of XML content from huge repositories, so that web-based repositories that support XQuery can (among other things) provide dynamic publications customized for different customers. The XSL-FO standard lets you specify the fine-grained page layout details that go into the creation of a professional looking PDF or printed book, so that many publishers use XSLT to generate XSL-FO for hard copy editions of their books.

Classes in this course will show you what to need to put XSL-FO and XQuery to work and how to take your XSLT development to the next level. Because the "Hands-on Introduction to XML" course will provide introductory material on XSLT, XSLT classes in this course will focus on helping existing XSLT developers get the most out of their stylesheets and their development time, as we look at efficient development practices, how to take best advantage of XSLT 2.0, and where XSLT, XQuery, and related technologies best fit into the application architecture of a larger system.

This course is chaired by Bob DuCharme.

Classes for 2009

XQuery Part 1 (Thursday morning)

This class will provide an overview of the capabilities, use cases and syntax of XQuery. After putting XQuery in context, we will take a brief tour of the XQuery/XPath data model and basic expressions. We will then dive right into writing queries using path expressions, FLWOR expressions and XML constructors.

This class is taught by Priscilla Walmsley.

XQuery Part 2 (Thursday morning)

In this session, we will build on the XQuery skills learned in the previous session. We will make use of more advanced FLWOR capabilities, such as joining data from multiple sources, sorting and grouping. In addition, we will learn how to create user-defined functions and reusable function libraries.

This class is taught by Priscilla Walmsley.

Getting the most out of XSLT 2.0 (Thursday afternoon)

Moving to XSLT 2.0 isn't just a matter of finally replacing your Muenchian Grouping code with a xsl:for-each-group. It offers new approaches to old problems, using constructs such as xsl:next-match, tunneling parameters, temporary trees and user-defined functions. In this session, we'll look at how you can take advantage of XSLT 2.0's new features to build better stylesheets.

This class is taught by Jeni Tennison.

XRX (XQuery, REST, and XForms) and the alternatives: application architecture (Thursday afternoon)

When building a large, web-based application, a variety of XML-based technologies such as XSLT, XQuery, XProc, and XForms can provide valuable building blocks--but so can Java frameworks and data binding, relational databases, and other older and newer technologies. How do you select which pieces fit together best to meet the needs of your application? What's the best way to move data between the XML-aware components of the system, and how do you make these talk to the non-XML-aware parts? When should data be validated, and how? In this class, Michael Kay draws on upon a long history of application architecture development experience to tell you about the key issues to consider as you assemble your large-scale web application.

This class is taught by Michael Kay.

XSL-FO (Friday morning)

This class provides an overview of XSL-FO: its purpose, how it's being used, and its relationship to XSLT. A small example document will be used to demonstrate conversion from generic XML, to XSL-FO, to PDF. The basic elements of XSL-FO will be introduced, such as page layout, blocks and inline formatting, and flow vs. static content. Examples of additional features, such as lists, links and images, will also be discussed.

This class is taught by Priscilla Walmsley.

Test-driven XSLT development (Friday morning)

Test-driven development is a spin-off of the Extreme Programming movement that helps to ensure the development of robust applications. It does this by making the development of individual unit tests for each new feature an integral part of software development and by integrating the execution of those tests to make regression testing a simple, automated process. Jeni Tennison has developed a framework for applying this to XSLT development and will show how you can use these principles to create more error-free XSLT stylesheets.

This class is taught by Jeni Tennison.

XSLT efficiency and effectiveness workshop (Friday afternoon)

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. In this two-part session, several leading experts on XSLT and related technologies will lead an interactive session on effective stylesheet development. The discussion 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.

This class is taught by Bob DuCharme, Michael Kay, Jeni Tennison, and Priscilla Walmsley.