Dr. John Lumley

Improving Pattern Matching Performance in XSLT

Dr. John Lumley (jwL Research & Saxonica)


This paper discusses improving the performance of XSLT programs that use very large numbers of similar patterns in their push-mode templates. The experimentation focusses around stylesheets used for processing DITA document frameworks, where much of the document logical structure is encoded in @class attributes. The processing stylesheets, often defined in XSLT1.0, use string-containment tests on these attributes to describe push-template applicability. For some cases this can mean a few hundred string tests have to be performed for every element node in the input document to determine which template to evaluate, which in sometimes means up to 30% of the entire processing time is taken up with such pattern matching. This paper examines methods, within XSLT implementations, to ameliorate this situation, including using sets of pattern preconditions and pre-tokenization of the class-describing attributes. How such optimisation may be configured for an XSLT implementation is discussed.

  • Download Paper
    Conference Paper
  • Download Slides
    Conference Presentation Slides
How to cite this

Dr. John Lumley and Dr. Michael Kay. "Improving Pattern Matching Performance in XSLT" Presented at XML London 2015, June 6-7th, 2015. doi:10.14337/XMLLondon15.Lumley01.

Dr. John Lumley

Run a SPARQL query




XML London - RDF triple store

All information about the XML London conference is open and available in Linked RDF format.

SPARQL Endpoint: http://xmllondon.com/sparql
Graph Store Protocol: http://xmllondon.com/data

Data Contributions and Thanks

Thanks go to Charles Foster and William Holmes for their contributions to the XML London dataset.

If you would like to contribute to the XML London dataset, please submit a Git Pull Request to https://github.com/cfoster/xmllondon-rdf

Please contact us if you find a bug or think something could be improved.