Acknowledgements

Many of the examples in this tutorial are taken directly from the XSLT 2.0 Specification.

Michael Kay generously shared a number of examples that he uses in his own tutorials.

Jeni Tennison’s Typing in Transformations paper from Extreme Markup Languages 2003 was instrumental in refreshing my memory about the issues surrounding XPath 2.0 casting rules.

David Carlisle suggested the XPath replacement for matching elements.