Main Page

From Schematron

Schematron Wiki

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 Versions

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.
  • 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; 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:

Schematron Listserve

You can become a member of the Schematron community by signing up on the Schematron listserve.

The Schematroll

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.

bilby.jpg CopyrightedFreeUse

Schematron Compared

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!)