XSLT and XQuery


XML 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 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 lan­guage lets you pull sub­sets of XML con­tent from huge repos­it­or­ies, so that XML data­bases that sup­port XQuery can (among other things) provide dynamic pub­lic­a­tions cus­tom­ized for dif­fer­ent customers.

The classes in this course will show you what you need to put XSLT and XQuery to work, as we look at effi­cient and effect­ive devel­op­ment prac­tices, how to write test-driven XSLT applic­a­tions, 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.

Because the “Hands-on Intro­duc­tion to XML” course will provide intro­duct­ory mater­ial on XSLT and XQuery, classes in this course will focus on help­ing exist­ing XSLT and/or XQuery developers get the most out of their code and their devel­op­ment time.

Fac­ulty Board mem­ber Priscilla Walms­ley teaches, as well as Fac­ulty mem­bers Tony Gra­ham, Dr. Jeni Ten­nison, and Dr. Michael Kay.

Classes for 2011

Query­ing XML Data­bases with XQuery

Taught by Priscilla Walmsley.

This class will provide an over­view of the cap­ab­il­it­ies and use cases of XML data­bases, examin­ing some of the data­base products that sup­port XML and how they are being used. It will then cover the role of XQuery among other XML tech­no­lo­gies in the query­ing of XML databases.

As a group, the class will build a simple search applic­a­tion using XQuery and an XML data­base (eXist). For this part of the class, we sug­gest you bring a laptop you can type on eas­ily, or be pre­pared to share with someone else. This will provide an oppor­tun­ity for attendees to learn the syn­tax and cap­ab­il­it­ies of XQuery, as well as see it in action. Major fea­tures of the XQuery lan­guage such as FLWOR expres­sions, XML con­struct­ors, and user-defined func­tions will be explained.

Lunch break, day one


XSLT 1.0 to 2.0 Con­ver­sion Workshop

Taught by Dr. Michael Kay

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 poten­tial back­ward incom­pat­ib­il­it­ies asso­ci­ated with upgrad­ing stylesheets from 1.0 to 2.0.

After review­ing the avail­able 2.0 fea­tures, we will do a group exer­cise of review­ing exist­ing 1.0 stylesheets and mak­ing recom­mend­a­tions for improv­ing their design, using XSLT 2.0 fea­tures when appro­pri­ate. We encour­age attendees to sub­mit their own XSLT trans­form­a­tions before or dur­ing the ses­sion to give us real-world examples to review.

End of day one


Devel­op­ing and Test­ing in XSLT

Taught by Jeni Ten­nison and Tony Graham

Unit tests, pro­fil­ing, debug­ging and, increas­ingly, test-driven devel­op­ment are part of the bread and but­ter of work­ing with other pro­gram­ming lan­guages but are not always so with XSLT or XQuery.

In test-driven devel­op­ment, which is a fun­da­mental part of agile approaches to soft­ware devel­op­ment, the 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 refactoring.

In this ses­sion, Jeni Ten­nison and Tony Gra­ham will describe both the state of the art in test­ing and debug­ging XSLT and XQuery and how test-driven devel­op­ment applies to XSLT and XQuery devel­op­ment. In par­tic­u­lar, they will focus on the use of the XSpec test­ing framework.

Lunch break, day two


XSLT Effi­ciency and Effectiveness

Taught by Dr. Michael Kay and Priscilla Walmsley

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 ses­sion, 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.