Schematron is a small language for making assertions about the presence or absense of patterns in XML documents using XPaths.
It is can be categorized as a schema language, a rules language, or a constraint language. Schematron is design to co-exist and augment with existing schema languages, providing a convenient way to easily express and test business and structural constraints.
Schematron has four main variants:
- The oldest from late 1999 uses no namespace; it is obsolete. The most common implementation is the open source ZVON schematron.
- The most common is Schematron 1.5 which uses the namespace http://www.ascc.net/xml/schematron; it will become obsolescent during 2006. Its main website is at Academia Sinica Computing Centre, at the Taiwanese research campus where Schematron was invented. Its specification can be found in the document The Schematron Assertion Language 1.5. The most common implementation is the open source Academia Sinica 'skeleton' implementation.
- Schematron 1.5 is sometimes augmented with features from Schematron 1.6, which was never promoted but folded into the ISO Schematron effort. A draft 1.6 skeleton implementation is available. (Examples of enhanced Schematron 1.5 implementations are James Clark's Jing implementation and Ken Holman's UBL enhancement.)
- The newest is ISO Schematron, an 30-page international standard which uses the namespace http://purl.oclc.org/dsdl/schematron; its promoters hope that Schematron implementors and developers support it to help penetration and quality of implementation. The main website for this version is at SCHEMATRON.COM. The paper and online versions of the ISO Schematron standard are now available for free at
ISO electronically and non-free for a paper version: from ISO for CHF120 and from ANSI for US$98. (It is being translated into Japanese as a JIS standard and will be cloned as a British Industrial Standard.)
Schematron has been implemented by several commercial companies, including Sun, Topologi, Fourthought and Oxygen. It is typically implemented on top of XSLT, but also has open source Java, .NET C++, Perl and Python implementations.
Schematron Implementer's FAQ
The Schematron Implementer's FAQ is located at:
You can become a member of the Schematron community by signing up on the Schematron listserve.
Schematron's mascot is available for use in any Schematron-related material. It was created by Taiwanese manga artist Cody Chang and is a cross between the marsupials bilby and bettong. It is copyright Rick Jelliffe and released for free use.
In an a Town Hall Meeting at an international XML conference in 2001, Schematron and other schema languages were compared for a representative range of problems and assessed by an independent panel. The scorecard result? Schematron 27/28, RELAX NG 20.5/28, XSD 16/28, DTD 8.5/28. The thing Schematron couldn't do? Supply a default value (however, in most current RELAX NG and XSD implementations default values are not supplied anyway!)