Starter kit for XSLT 3.0 in the browser using SaxonJS
Students of XSLT may be interested in a NIST project newly underway, XSLT Blender (for the demo, with link to repository). XSLT 1.0 still punching above its weight.
Also, by popular demand, an MIT License now explicitly grants permission for reuse of software developed on this site.
With respect to interpretive works herein, or parts of works with design aspects such as page layout or interfaces, please consider them copyright by the author.
OSCAL demonstrations (originally developed for Balisage 2021) are now at an official home.
Quick links - served from this site:
These and additional demonstrations are described below.
To produce your own XML application using XSLT and SaxonJS, XML Jelly Sandwich offers XSLT you can use to produce “starter” files, which you can subsequently modify and improve. See the repo.
All these demonstrations are meant to show what can be done with XSLT in the browser (client-side XSLT or CSX) and to provide a jump start to devs working on similar problems.
This application permits creation of lightweight XML with local save for persistence, specifically oriented to structured (lineated) verse in the Western tradition (left-to-right top-to-bottom with defined conventions for line endings and indents). Transcribing Poe or Wordsworth? Markdown for versifiers!
For examples of XML documents designed to showcase functionalities of the OSCAL applications, download and unzip the file oscal/oscal-examples.zip
Note that the OSCAL demos now link to the sites where they are maintained:
XML Jelly Sandwich is a library of XSLTs you can use to create XML/XSLT applications using SaxonJS. These will run in most any modern browser with Javascript.
The demonstrations, and XML Jelly Sandwich in general, are entirely dependent on SaxonJS and would hardly have been conceivable without the contributions of Saxonica and oXygen XML IDE among many others.
Each of the demonstrations listed is provided with source XSLT. The page code will show you where: if a call to SaxonJS inside an HTML page says to invoke stylesheet: 'transform.sef'
, the stylesheet (from which the compiled .sef
file was produced) will be there as file transform.xsl
.
They have been made at various times to different versions of Saxon-JS, which continues to improve, so your mileage may vary. Apologies in advance if a page fails to load, and please feel free to report bugs via Issues in the Github repository.
Additional note: Although Saxon-JS libraries are available on this site – which is designed for maximum transparency – they are presented for demonstration only. When building your own Saxon-JS applications you should not rely on the currency or availability of copies found here, instead maintaining your copies of up-to-date distributable sources from Saxonica.
These may (also) be published elsewhere but are maintained here for long-term accessibility.
The Thalaba demo calls a file in a fork of E Beshero-Bandar’s TEI Thalaba. Thanks Elisa!
The Constitutional Convention is as mostly restored from a 2002 SVG original produced by Jim Surkamp with the developer. It still relies on original SVG declarative animations – YMMV on different browsers (try Firefox).
Note that while SaxonJS is a dependency for these demonstrations, the XML Jelly Sandwich XSLTS were only an expediency, not a requirement. The Jelly Sandwich utilities have simply made these easy to set up and launch.
Note that the demonstrations were all made at various times using different generations of tools available in the repo. Each has subsequently undergone more or less radical configuration and rewrite.