SchXslt 1.2 »MarkupUK Edition«
David Maus, 7. Jun 2019
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 thesvrl: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.