XSLT and XQuery



XSLT lets you define a trans­form­a­tion of a type of doc­u­ment into a par­tic­u­lar format, so that dif­fer­ent XSLT stylesheets could cre­ate pub­lished products from the same XML con­tent for dif­fer­ent media.

The XQuery lan­guage lets you extract sub­sets out of any XML con­tent from a single doc­u­ment to huge repos­it­or­ies used to provide dynamic pub­lic­a­tions tailored for dif­fer­ent customers.

Nat­ive XML data­bases and other stor­age tech­no­lo­gies provide facil­it­ies for dif­fer­ent classes of XML repos­it­ory, accord­ing to require­ments, and allow dif­fer­ent levels of gran­u­lar­ity to suit both simple and com­plex stor­age demands.

Retrieval from XML stor­age often means the com­bin­a­tion of sev­eral XML-based tech­no­lo­gies, includ­ing XQuery and XSLT, and may involve the trans­form­a­tion of the inform­a­tion through sev­eral formats (pipelining).

The classes in this course will show you what you need to put XSLT and XQuery to work, and how to match your busi­ness require­ments with the stor­age and retrieval archi­tec­tures avail­able. They will also enable you to take your XSLT and XQuery devel­op­ment to the next level by look­ing at effi­cient devel­op­ment prac­tices; and to take best advant­age of how the related tech­no­lo­gies fit into the applic­a­tion archi­tec­ture of lar­ger systems.

Because the “Hands-on Intro­duc­tion to XML” course provides intro­duct­ory mater­ial on XSLT, the 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.

Classes for 2010

XML Stor­age

Taught by: Peter Flynn

There are many ways of stor­ing XML doc­u­ments and col­lec­tion: simple filesys­tems, con­tent man­age­ment applic­a­tions, native-XML data­bases, non-XML data­bases, applic­a­tions in the cloud, and data­bases which expose non-XML data as XML. This class explains the advant­ages and dis­ad­vant­ages of vari­ous meth­ods, and how the require­ments of schema selec­tion, applic­a­tion design, data archi­tec­ture, and demands of XML pro­cessing can affect the choice of stor­age archi­tec­ture (and vice versa).

XML Retrieval

Taught by: Norm Walsh

The flip side of stor­ing XML doc­u­ments is retrieval. This class will dis­cuss the vari­ous ways in which XML doc­u­ments can be accessed. The exact nature of the meth­ods var­ies with the nature of the repos­it­ory, the pur­pose of the retrieval, and the lan­guage or applic­a­tion being used. We’ll review a num­ber of trans­port pro­to­cols, con­sider how XSLT and XQuery can access doc­u­ments, how facil­it­ies like Web­Dav can be used, and what if any abstrac­tions apply uni­ver­sally to XML retrieval.

Lunch break, day one


Get­ting the Most out of XSLT 2.0

Taught by: Priscilla Walms­ley

XSLT 2.0 is a sig­ni­fic­ant improve­ment over XSLT 1.0. This class will provide a tour of the new fea­tures in XSLT 2.0, allow­ing you to make the most of its advanced cap­ab­il­it­ies. We will talk about group­ing, user-defined func­tions, reg­u­lar expres­sion hand­ling, and typ­ing and schema sup­port. We will also dis­cuss some of the chal­lenges asso­ci­ated with upgrad­ing stylesheets from 1.0 to 2.0.


Taught by: Priscilla Walms­ley

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.

End of day, day one


Test-Driven XSLT Development

Taught by: Jeni Ten­nison

Test-driven devel­op­ment is a fun­da­mental part of agile approaches to soft­ware devel­op­ment. Developers write tests that describe the desired beha­viour of their applic­a­tion, then write code that meets the tests.

This style of devel­op­ment keeps code focused, avoids break­ing exist­ing code and facil­it­ates refact­or­ing. In this ses­sion, Jeni Ten­nison will describe how test-driven devel­op­ment applies to XSLT and XQuery devel­op­ment and in par­tic­u­lar the use of the XSpec test­ing framework.

Archi­tec­tures and Advantages

Taught by Dr. Michael Kay

When build­ing large web-based applic­a­tions, 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. 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 a large-scale web application.

Lunch break, day two


Work­shop: XSLT Effi­ciency and Effectiveness

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 work­shop, sev­eral lead­ing experts on XSLT and related tech­no­lo­gies will head up inter­act­ive ses­sions 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.