David Maus M. A.

Digital Humanities Publishing

SchXslt 1.2 »MarkupUK Edition«

David Maus, 07.06.2019 · Permalink

I am happy to announce the release of version 1.2 of SchXslt, an XSLT-based Schematron processor.

You can download this version SchXslt from its project page. Developers using SchXslt in a Java-based project can add or update the Maven artifact name.dmaus.schxslt.schxslt to version 1.2.

Heads up: The location of the XSLT stylesheets has changed. The stylesheets for the XSLT 2.0 compiler are moved from the directory src/main/resources/xslt to src/main/resources/xslt/2.0. The stylesheets of the XSLT 1.0 compiler reside in a 1.0 subdirectory accordingly.

Enhancements

Support for query language XSLT 3.0

SchXslt 1.2 adds support for the not-yet-standardized query language binding for XSLT 3.0. The 2.0 compiler accepts the query language identifier token xslt3 and creates a validation stylesheet with the version attribute set to 3.0.

Callback API

SchXslt 1.2 adds the templates schxslt-api:validation-stylesheet-body-top-hook and schxslt-api:validation-stylesheet-body-bottom-hook to the callback API. The former contributes to the top of the validation stylesheet body, the latter to the bottom. Both are called with the Schematron schema as sole argument.

Support for query language XSLT 1.0

SchXslt 1.2 ships with an XSLT 1.0 processor that creates XSLT 1.0 validation stylesheets. Due to the limitations of this version of XSLT the XSLT 1.0 processor has the following known limitations:

  • the include step is not performed recursivly; only includes from the primary schema document are replaced

  • the base URI of included external definitions is not preserved

  • the base URI of the primary schema document is not preserved

  • the URI of the primary source document is not included in the documents attribute of the svrl:active-pattern element

XQuery modules

SchXslt 1.2 ships with XQuery modules for BaseX and eXist. The modules are packaged as EXPath packages. Both provide the function schxslt:validate that performs Schematron validation and returns a SVRL validation report.

The packaged modules are available for download on SchXslt's page of releases.