XSLT, XSL-FO, and XQuery

 

Over­view

XML appeals to pub­lish­ers because it makes it pos­sible to store con­tent in a stand­ard­ized format that can be con­ver­ted to a vari­ety of out­put media using a a broad choice of tech­no­lo­gies. Most of these tech­no­lo­gies build on related W3C stand­ards with both com­mer­cial and open source tools sup­port. XSLT lets you define a trans­form­a­tion of a set of doc­u­ments into a par­tic­u­lar format, so that three XSLT stylesheets could cre­ate pub­lished products from the same con­tent for three dif­fer­ent media. The XQuery query lan­guage lets you pull sub­sets of XML con­tent from huge repos­it­or­ies, so that web-based repos­it­or­ies that sup­port XQuery can (among other things) provide dynamic pub­lic­a­tions cus­tom­ized for dif­fer­ent cus­tom­ers. The XSL-FO stand­ard lets you spe­cify the fine-grained page lay­out details that go into the cre­ation of a pro­fes­sional look­ing PDF or prin­ted book, so that many pub­lish­ers use XSLT to gen­er­ate XSL-FO for hard copy edi­tions 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 devel­op­ment to the next level. Because the “Hands-on Intro­duc­tion to XML” course will provide intro­duct­ory mater­ial on XSLT, XSLT classes in this course will focus on help­ing exist­ing XSLT developers get the most out of their stylesheets and their devel­op­ment time, as we look at effi­cient devel­op­ment prac­tices, how to take best advant­age of XSLT 2.0, and where XSLT, XQuery, and related tech­no­lo­gies best fit into the applic­a­tion archi­tec­ture of a lar­ger system.

This course is chaired by Bob DuCh­arme.

Classes for 2009

XQuery Part 1 (Thursday morning)

This class will provide an over­view of the cap­ab­il­it­ies, use cases and syn­tax of XQuery. After put­ting XQuery in con­text, we will take a brief tour of the XQuery/XPath data model and basic expres­sions. We will then dive right into writ­ing quer­ies using path expres­sions, FLWOR expres­sions and XML constructors.

This class is taught by Priscilla Walms­ley.

XQuery Part 2 (Thursday morning)

In this ses­sion, we will build on the XQuery skills learned in the pre­vi­ous ses­sion. We will make use of more advanced FLWOR cap­ab­il­it­ies, such as join­ing data from mul­tiple sources, sort­ing and group­ing. In addi­tion, we will learn how to cre­ate user-defined func­tions and reusable func­tion libraries.

This class is taught by Priscilla Walms­ley.

Get­ting the most out of XSLT 2.0 (Thursday afternoon)

Mov­ing to XSLT 2.0 isn’t just a mat­ter of finally repla­cing your Muen­chian Group­ing code with a xsl:for-each-group. It offers new approaches to old prob­lems, using con­structs such as xsl:next-match, tun­nel­ing para­met­ers, tem­por­ary trees and user-defined func­tions. In this ses­sion, we’ll look at how you can take advant­age of XSLT 2.0’s new fea­tures to build bet­ter stylesheets.

This class is taught by Jeni Ten­nison.

XRX (XQuery, REST, and XForms) and the altern­at­ives: applic­a­tion archi­tec­ture (Thursday afternoon)

When build­ing a large, web-based applic­a­tion, a vari­ety of XML-based tech­no­lo­gies such as XSLT, XQuery, XProc, and XForms can provide valu­able build­ing blocks–but so can Java frame­works and data bind­ing, rela­tional data­bases, and other older and newer tech­no­lo­gies. How do you select which pieces fit together best to meet the needs of your applic­a­tion? What’s the best way to move data between the XML-aware com­pon­ents of the sys­tem, and how do you make these talk to the non-XML-aware parts? When should data be val­id­ated, and how? In this class, Michael Kay draws on upon a long his­tory of applic­a­tion archi­tec­ture devel­op­ment exper­i­ence to tell you about the key issues to con­sider as you assemble your large-scale web application.

This class is taught by Michael Kay.

XSL-FO (Fri­day morning)

This class provides an over­view of XSL-FO: its pur­pose, how it’s being used, and its rela­tion­ship to XSLT. A small example doc­u­ment will be used to demon­strate con­ver­sion from gen­eric XML, to XSL-FO, to PDF. The basic ele­ments of XSL-FO will be intro­duced, such as page lay­out, blocks and inline format­ting, and flow vs. static con­tent. Examples of addi­tional fea­tures, such as lists, links and images, will also be discussed.

This class is taught by Priscilla Walms­ley.

Test-driven XSLT devel­op­ment (Fri­day morning)

Test-driven devel­op­ment is a spin-off of the Extreme Pro­gram­ming move­ment that helps to ensure the devel­op­ment of robust applic­a­tions. It does this by mak­ing the devel­op­ment of indi­vidual unit tests for each new fea­ture an integ­ral part of soft­ware devel­op­ment and by integ­rat­ing the exe­cu­tion of those tests to make regres­sion test­ing a simple, auto­mated pro­cess. Jeni Ten­nison has developed a frame­work for apply­ing this to XSLT devel­op­ment and will show how you can use these prin­ciples to cre­ate more error-free XSLT stylesheets.

This class is taught by Jeni Ten­nison.

XSLT effi­ciency and effect­ive­ness work­shop (Fri­day afternoon)

Effect­ive soft­ware devel­op­ment is a two-sided coin: on the one hand, you want to develop sys­tems that run quickly and are easy to main­tain; on the other hand, you want to make the best use of your own time in build­ing these sys­tems, get­ting to that fast, main­tain­able sys­tem as quickly as pos­sible. In this two-part ses­sion, sev­eral lead­ing experts on XSLT and related tech­no­lo­gies will lead an inter­act­ive ses­sion on effect­ive stylesheet devel­op­ment. The dis­cus­sion will focus on best prac­tices for build­ing stylesheets that run quickly, are easy to main­tain, handle unex­pec­ted con­di­tions grace­fully, and are flex­ible enough to be eas­ily cus­tom­ized. Bring your own ideas and ques­tions, and we’ll com­pile, sort, and dis­cuss them to develop a series of recom­mend­a­tions to get the best out of your future XSLT development.

This class is taught by Bob DuCh­arme, Michael Kay, Jeni Ten­nison, and Priscilla Walms­ley.