Release of SchXslt Schematron v1.5
September 27, 2020
Submitted by David Maus.
I am pleased to announce the release of SchXslt 1.5, a modern XSLT-based Schematron processor.
Improved tracking of the context node
SchXslt groups patterns whose rules can run in a single XSLT mode using the
xsl:next-match instruction. Version 1.5 of SchXslt improves the code that is used to track the context node in a chain of
xsl:next-match calls such that it removes a call to
generate-id() for every node matched by a rule.
SchXslt implements typed variables as outline in the Schematron Enhancement Proposal 1. A Schematron variable now has an optional as attribute with the same semantics as described in section 9.3 of the XSLT 2.0 and XSLT 3.0 specification respectively.
Structured Metadata about processors
The validation stylesheet and the SVRL report now contain structured metadata about the processor configuration. SchXslt uses striped RDF/XML to give information about the version of the XSLT processor, the version of SchXslt and any SchXslt compiler options.
The steps include, expand, and compile are integrated in a micro-pipeline such that a single stylesheet can be used to create the validation stylesheet. The pipeline stylesheets are called
This version of SchXslt also marks a complete overhaul of the build process. The Ant step and the commandline validation tool have been merged to the main repository which is now set up as a Maven multi-module project. The XQuery modules for BaseX and eXist are moved to module subdirectories, too. Packaging SchXslt now creates the following artifacts:
- a Java archive with the XSLT stylesheets and the XProc pipelines
- a Zip-file with just the XSLT stylesheets
- a Xar-file for BaseX
- a Xar-file for eXist
- a Java archive with the Ant step
- a Java archive with the commandline validation tool
Special thanks to Duncan Paterson who helped setting up the modular Maven project.
(Issue 132) SchXslt now signals an error if a rule extends an abstract rule defined in a different pattern
(Issue 139) Fixed a bug in the API specification that could cause SchXslt to create a validation template where the validation logic could be optimized away by an XSLT processor
(Issue 131) Fixed a bug where the XQuery modules reported an error for a Schematron with query binding of 'xslt3'.