1. Abstract

"Practical Transformation Using XSLT and XPath" overviews the entire scope of the Extensible Stylesheet Language Transformations (XSLT) 1.0 http://www.w3.org/TR/xslt, XSLT 2.0 http://www.w3.org/TR/xslt20, the XML Path Language (XPath) 1.0 http://www.w3.org/TR/xpath and XPath 2.0 http://www.w3.org/TR/xpath20 W3C Recommendations, used for transforming structured information (e.g. XML to XML, XML to HTML, XML to XSL-FO, XML to text, etc.). The objectives of the course are to understand the role and utility of the Recommendations, to overview all the constructs of the Recommendations (the five-day delivery covers every element, every attribute, and every function), to design and develop XSLT scripts, and to efficiently navigate the available documentation and resources. The relationship of XSLT to XSL is explained, though details of XSL Formatting Object semantics are not included.

This hands-on course combines the use of lectures and exercises to convey the material. For the practical exercises, attendees are invited to bring a personal computer (with a USB port) and their own XSLT environment or they can use public-domain XSLT software that will be made available for a Java-based environment.

2. Length

This course runs in either a one-day or five-day format. The one day is more of an introduction with exercises than a comprehensive tutorial as it is not long enough to cover every construct. The five-day format covers everything and is the recommended length. Time is allocated on the XSLT and XPath perspectives of XML syntax and more exercise time.

This is an intensive class running 7 to 9 hours per day including the exercises, with homework assigned each night. In markets where English may not be a strong language with students (e.g. China, Japan, etc.) or simultaneous or consecutive translation is needed, please double the number of elapsed days: the syllabus half-day segments will each be taught over a full day at the students' pace. This also leaves extra time for questions of clarification regarding language and the descriptions of the exercise solutions.

Note that the training video version of this material is a recording of an earlier edition of this full five-day syllabus, including all exercises that were in place at the time.

3. Expected Audience

This course is aimed at people needing to understand both conceptual and practical aspects of the XSLT and XPath languages and the available tools.

4. Prerequisites - Is this the right class for you?

Attendees must have a working technical knowledge of XML concepts and the syntax of angle brackets, as these are not covered explicitly in the course. Time is allocated in the five-day delivery to accommodate additional questions from attendees regarding XML syntax, in the perspective of XSLT and XPath.

To participate in the hands-on exercises, attendees must have either an XSLT-equipped or a Java-equipped personal computer. Copies of the exercise materials are available on USB sticks at the course. Complete solutions are provided to research in place of attendees deriving the exercise solutions on their own.

Attendees must have a firm knowledge of the operating system environment as there is no time for coaching from the instructor regarding the command-line environments of today's operating systems.

To get the maximum benefit from this material, please be prepared to work hard. Some exercises are assigned as homework for the next day.

If you come to class with problems to solve, you will get more from the material and exercises than trying to learn the concepts in the abstract.

This is an exhaustive (and some students tell us "exhausting") and comprehensive class for both beginners and experts. For a different approach to the same material, you may wish to consider the Mulberry Technology suite of XML classes.

5. Synopsis

For many people, all that is needed to "get over the hump" of understanding the apparently complex concepts of the Extensible Stylesheet Language Transformations (XSLT) and the XML Path Language (XPath) is instruction in the basics upon which these standards are built and exercise of the theory.

"Practical Transformation Using XSLT and XPath" successfully equips the attendee with an understanding of the major components of these Recommendations, and practice in the skills required to use XSLT and XPath with publicly available tools. These skills can then be used after the course for self-study of any revisions to this standard and any formatting facets that cannot be covered in such a short course time.

When designing our XML vocabularies to represent our information, we should not be constraining our structures to the presented form we anticipate. We should be constraining our structures to the inherent relationships of information considering the ways we plan to author and maintain our information for the long haul and for many and varied purposes and presentations. This is the commonly-felt shortfall of capturing our information in HTML or, if we are printing information, in either a proprietary printing application or a static print appearance.

XPath and XSLT give us the ability to, respectively, address our structured information in XML and express the desired transformation of our information into new and varied arrangements. Perhaps these arrangements are necessary because of different technologies such as web browsers, hand-held devices, and print engines. Perhaps these arrangements are necessary because the target audiences for our information differ and we need to either subset or emphasize or rearrange our information into the target uses that make our information the easiest to consume for each of our many and varied users.

XPath is an expression language based on an abstract node-based representation of our structured XML information. XSLT is a declarative language, yet powerful enough to be Turing-complete, where we represent the result of the transformation of our information in a way that a processor can engage whatever algorithms are required to produce the final desired vocabulary and structure.

Using XSLT and XPath frees us to focus our XML creation processes on the nature of our information, while at the same time frees us to meet existing and future requirements for different uses of our information.

Many people find that the recommendations themselves are difficult to read and understand, while others find the documents outright scary. The curriculum covers the entire suite of functionality in the recommendations in order to understand how to be productive using tools in a production environment. A number of resources that are publicly available over the Internet are briefly overviewed so that the attendee can determine which materials are important to obtain and use.

The hands-on exercises help cement XSLT and XPath concepts by leading the attendee to resolve basic, often initially frustrating, obstacles under the supervision of the instructor and collaboration with fellow students. Exercises cover important concepts with simple objectives. Attendees are invited to research completed exercise solutions without needing to derive the solutions on their own.

During the course the exercises are timed to cover breaks so that students can choose to balance work time with break time should extra exercise time be required, thus reducing the chance of delaying the progress of the course material.

6. Hands-on exercises

Sample complete answers to all exercises are available to attendees. All exercises produce HTML for use in a browser to check results, though the principles taught in the course cover all possible result tree syntax serializations.

The following exercises are included in the five-day course:

  • the setup and invocation of XSLT processors
  • the XPath data model
  • writing XPath expressions for addressing nodes of a document tree
  • the differences in push- and pull-oriented stylesheets
  • XML source tree traversal
  • using called templates and user-defined functions
  • XSLT stylesheet management techniques
  • XSLT numbering facilities
  • using number functions
  • using string functions
  • building a table of contents
  • using date functions
  • advanced XSLT features
  • sorting and grouping XML information into reports

7. Deliveries

7.1. One-day Delivery Syllabus

 00:00   Course Introduction
         Instructor/Student Expectations
         Module 1: XSL Transformations and the XML Path Language
         Module 2: Getting Started with XSLT and XPath
         Exercise: Setup
 01:30   Break
 00:00   Module 3: XPath Data Model
         Exercise: XPath
 01:30   Lunch
 00:00   Module 4: XSLT Processing Model
         Module 5: The XSLT Transformation Environment
         Exercise: A Simple Document
 01:30   Break
 00:00   Module 6: XSLT Stylesheet Management
         Module 7: XSLT Instructions
         Module 8: XPath and XSLT Expressions and Advanced 
         Module 9: Sorting and Grouping
         Annex A: XML to HTML Transformation Techniques
         Annex B: XSL Formatting Semantics Introduction
         Annex C: Element, Grammar, Function and Object
                    Quick References
         Annex D: Sample Tool Information
 01:30   End of Day 

7.2. Five-day Delivery/Video Syllabus

7.2.1. Day 1 of 5

         Course Introduction
         Instructor/Student Expectations
         Module 1: The context of XSLT and XPath
         Module 2: Getting Started with XSLT and XPath
         Exercise: Setup
         Module 3: XPath Data Model
         Exercise: XPath Data Model
         End of Day

7.2.2. Day 2 of 5

         Day 1 Questions
         Module 3: XPath Data Model (cont.)
         Exercise: XPath Expressions
         Module 4: Processing Model
         Exercise: Source Tree Traversal
         End of Day

7.2.3. Day 3 of 5

         Day 1 and 2 Questions
         Module 5: Transformation Environment
         Exercise: A Simple Document
         Module 6: Stylesheet and data management
         Exercise: Called templates and user-defined functions
         Exercise: Stylesheet management
         Exercise: Data management
         End of Day 

7.2.4. Day 4 of 5

         Day 1 through 3 Questions
         Module 7: Data type expressions and functions
         Exercise: Using number functions
         Exercise: Using string functions
         Exercise: Building a table of contents
         Exercise: Using date functions
         Exercise: Number Representation
         Module 8: Constructing the result tree
         Exercise: Number Representation
         End of Day 

7.2.5. Day 5 of 5

         Day 1 through 4 Questions
         Module 9: Sorting and Grouping
         Exercise: Sorting and Grouping
         Annex A: XML to HTML Transformation Techniques
         Annex B: XSL Formatting Semantics Introduction
         Annex C: Element, Grammar, Function and Keyword
                    Quick References
         Annex D: Sample Tool Information
         End of Day 

8. Outcomes

At the end of the five-day course, attendees will be able to:

  • understand the role and the scope of XSLT and XPath in XML document processing
  • be aware of every element, every attribute, and every function of XSLT 1.0 and 2.0 and XPath 1.0 and 2.0
  • write XPath expressions for source tree nodes and other data types
  • write push- and pull-oriented XSLT stylesheets
  • manage stylesheet fragments and understand issues of stylesheet maintenance
  • sort and group information
  • navigate the formal Recommendation documents

9. Public testimonials

Some publicly posted testimonials regarding the earlier XSLT/XPath 1.0 version of this course:

Crane logo

Please consider to

towards our
free resources.

+1 (613) 489-0999 (Voice)


Link traversal: This web site relies heavily on client-side redirection. If certain links do not work for you, please ensure you have this behaviour enabled in your browser.

Page navigation:

Site navigation:

Small print: All use of this web site and all business conducted with Crane Softwrights Ltd. is subject to the legal disclaimers detailed at http://www.CraneSoftwrights.com/legal ... please contact us if you have any questions. All trademarks, servicemarks, registered trademarks, and registered servicemarks are the property of their respective owners.

Link legend: links that are marked with this dotted underline will open up a new browser window, otherwise the same browser window is used for the link target. 

Last changed: $Date: 2009/09/15 08:03:46 $(UTC) (Privacy policy)