516. XSLT
Version 1.2

Book cover

This comprehensive four-day course develops in-depth knowledge and skills in transforming XML documents using eXtensible Stylesheet Language Transformations, or XSLT. Students work through extensive hands-on exercises in transformations from XML to plain text, HTML, and XML, with good grounding in XPath along the way. Intermediate and advanced techniques are also covered including variables and parameters, callable templates, sorting and grouping, tail recursion, working with multiple documents, and XSLT extensions. The course teaches XPath and XSLT 1.0 but looks forward to the 2.0 releases of both specifications with pointers about what new features to expect.


  • Ability to read and to write well-formed XML -- Course 501 is excellent preparation.
  • Ability to read a DTD not strictly required, but preferred.

Learning Objectives

  • Write simple and complex queries into XML document content using XPath.
  • Harness the built-in template rules to process just the right source information, getting maximum leverage from the XSLT processor.
  • Control the exact production of text, HTML and XML elements, and whitespace.
  • Use mode and priority to control template matching.
  • Use looping and conditional processing to manage output production.
  • Declare, bind and reference XSLT variables and parameters.
  • Use callable templates to capture common transformations and styling.
  • Filter and sort XSLT output.
  • Use XSLT keys and other techniques to achieve grouping in transformation output and to derive aggregate information on groups.
  • Produce refined transformation output including auto-numbering, formatted numeric output, and aggregate values such as sums and counts.
  • Implement more complex processes using tail recursion in callable templates.
  • Use the XSLT document function to manage multiple source documents.
  • Import and include multiple transform definitions to foster reuse of transformation logic.
  • Use XSLT extensions to empower transforms with more sophisticated and reusable logic.

Timeline: 4 days.

Chapter 1. Getting Started with XSLT

  • XSL and XSLT
  • Rule-Based Transformations
  • Templates
  • Producing Text, HTML, and XML

Chapter 2. XPath

  • Addressing XML Content
  • XPath in XSLT
  • Tree Structure
  • XPath Expressions
  • Type Model
  • Context
  • Axis, Node Test, and Predicate
  • Abbreviations
  • Proximity Position
  • XPath Functions
  • Comparisons Between Various Types

Chapter 3. Templates and Production

  • Template Matching
  • Built-In Template Rules
  • Recursion Through Templates
  • Template Context
  • Output Methods
  • Controlling Whitespace
  • Literal Replacement Elements
  • Formalizing Text, Elements and Attributes
  • Defining Target Vocabulary
  • Generating Processing Instructions

Chapter 4. Dynamic Content and Flow Control

  • Deriving Source Content
  • Getting Source Values
  • Attribute Value Templates
  • Copying Source Elements and Trees
  • Looping
  • Conditionals

Chapter 5. Variables and Template Management

  • Variables
  • Using Variables to Capture Context Information
  • Result Tree Fragments
  • Parameters
  • Calling Templates Explicitly
  • Global Variables and Stylesheet Parameters
  • Template Modes

Chapter 6. Sorting and Grouping

  • Sorting
  • Data Type for Sorting
  • Grouping
  • Uses for Grouping
  • Using the Preceding-Sibling Axis
  • Using XSLT Keys
  • Iterating Over Groups
  • Iterating Within a Group

Chapter 7. Advanced XSLT

  • Auto-Numbering
  • Number Formatting
  • XSLT Performance
  • Debugging and Diagnostics
  • Computing Aggregate Values
  • Tail Recursion

Chapter 8. Multiple Documents and Transforms

  • Merging Multiple Source Documents
  • The XSLT Document Function
  • Reusing Transformation Logic
  • Including Transforms
  • Importing Transforms

Chapter 9. Extensions

  • Extension Namespaces and Exclusions
  • Extension Elements
  • Extension Functions
  • Redirects
  • Node-Set Conversion

Appendix A. Learning Resources

System Requirements

Hardware Requirements (Minimum) 500 MHz, 128 meg RAM, 50 meg disk space.
Hardware Requirements (Recommended) 1.0 GHz, 256 meg RAM, 50 meg disk space.
Operating System Tested on Windows XP Professional. Course software should be viable on all systems which support W3C-compliant XML tools.
Network and Security Limited privileges required -- please see our standard security requirements.
Software Requirements All free downloadable tools.