Presentations and tutorials
Engineering a time-sensitive XSLT/SaxonJS application
During Balisage 2026 the author demonstrated a browser-based application, implemented in ~XSLT4, SaxonJS, SVG and limited Javascript code, using XML data, which involved significant audio and graphic components.
[Sneak preview - a player piano]
These required sub-second co-ordination to keep audio and graphics in reasonable sync, as well as meeting near-real-time progress.
The design methodology was to build as much as possible at a high level in XSLT to get the application running and overall functionality decided and then tune the time-sensitive performance aspects by progressively ‘compiling’ the data streams into more fundamental, and less expensive structures.
This paper will look in detail at how this design progressed and suggest some lessons for the development of similar applications.
A Cambridge engineer by background, John Lumley spent the majority of his career as one of the founding members of HPLabs Bristol.
Latterly he specialised in XSLT-based document engineering, in which he subsequently gained a PhD in early retirement. Rarely happier than when writing XSLT to write XSLT, he spent the next several years helping Saxonica, including developing the XSLT-based XSLT compiler now used in SaxonJS.
Now in proper retirement he still likes to ‘potter’ with XSLT and is currently an active member of both the QT4 and the Invisible XML Community Groups.