The Leading Implementation of ISO Schematron

This is the home page for Rick Jelliffe's implementation of ISO Schematron using XSLT. Other more sophisticated Schematron validators built using this skeleton code can be found at the Validators page; in particular this includes a validator that generates ISO SVRL.

It is based in part on his original code from 1999 and supercedes all previous versions of Schematron, which can be found at his ASCC (Academia Sinica Computing Centre, Taipei) website. ISO officially does not allow reference implementations, however, this version is maintained by the editor of the ISO Standard and developers seeking better understanding of the ISO Standard can reference and follow this implementation.

These distributions also now include stylesheets for extracting ISO Schematron patterns embedded in XSD or RELAX NG schemas.

Please send comments to the news group schematron-love-in. Rick Jelliffe would like to express his thanks to everyone who has helped with Schematron over the last nine years.

Running Schematron

See the following articles:

Most applications and sites that use ISO Schematron use these XSLT scripts. However, there are other implementations of Schematron that may be useful. GriffinBrown's Probotron is a Java and C# implementation of ISO Schematron using these skeletons which also has an independent 'High Performance' implementation completely in Java, using their Shail data model. There are several independent Schematron 1.5 implementations as well: notably James Clark's Jing and Sun's MSV. There are several independent implementations of earlier versions of Schematron as well.

Design Requirements

The design requirements for this version include:

Due to the variations in XSLT support, in particular differences in XSLT2 and XSLT1 processors, from 2007-10-17 there are now two distributions.

Resources

Some of these resources are out of sync with the latest version. As they are verified, they will be moved into the particular distributions.