World Library  
Flag as Inappropriate
Email this Article




In markup languages, Schematron is a rule-based validation language for making assertions about the presence or absence of patterns in XML trees. It is a structural schema language expressed in XML using a small number of elements and XPath.

In a typical implementation, the Schematron schema XML is processed into normal XSLT code for deployment anywhere that XSLT can be used.

Schematron is capable of expressing constraints in ways that other XML schema languages like XML Schema and DTD cannot. For example, it can require that the content of an element be controlled by one of its siblings. Or it can request or require that the root element, regardless of what element that is, must have specific attributes. Schematron can also specify required relationships between multiple XML files.

Constraints and content rules may be associated with "plain-English" validation error messages, allowing translation of numeric Schematron error codes into meaningful user error messages.

The current ISO recommendation is the ISO Schematron of 2006 (ISO/IEC FDIS 19757-3).


  • Uses 1
  • Versions 2
  • Schematron as an ISO Standard 3
  • Sample rule 4
  • Implementation 5
  • See also 6
  • External links 7
  • References 8


Constraints are specified in Schematron using an XPath-based language that can be deployed as XSLT code, making it practical for applications such as the following:

Adjunct to Structural Validation
By testing for co-occurrence constraints, non-regular constraints, and inter-document constraints, Schematron can extend the validations that can be expressed in languages such as DTDs, RELAX NG or XML Schema.[1]
Lightweight Business Rules Engine
Schematron is not a comprehensive, Rete rules engine, but it can be used to express rules about complex structures with an XML document.
XML Editor Syntax Highlighting Rules
Some XML editors use Schematron rules to conditionally highlight XML files for errors. Not all XML editors support Schematron.


Schematron was invented by Rick Jelliffe at Academia Sinica Computing Centre, Taiwan. He described Schematron as "a feather duster to reach the parts other schema languages cannot reach".

The most common versions of Schematron are:

  • Schematron 1.0 (1999)
  • Schematron 1.3 (2000): This version used the namespace It was supported by an XSLT implementation with a plug-in architecture.
  • Schematron 1.5 (2001): This version was widely implemented and can still be found.
  • Schematron 1.6 (2002): This version was the base of ISO Schematron and obsoleted by it.
  • ISO Schematron (2006): This version regularizes several features, and provides an XML output format, Schematron Validation Report Language (SVRL).[2] It uses the new namespace
  • ISO Schematron (2010): This proposed version adds support for XSLT2 and arbitrary properties.

Schematron as an ISO Standard

Schematron has been standardized to become part of : ISO/IEC 19757 - Document Schema Definition Languages (DSDL) - Part 3: Rule-based validation - Schematron.

This standard is available free on the ISO Publicly Available Specifications list. Paper versions may be purchased from ISO or national standards bodies.

Schemas that use ISO/IEC FDIS 19757-3 should use the following namespace: 

Sample rule

Schematron rules can be created using a standard XML editor or XForms application. The following is a sample schema:

      Date rules
         ContractDate should be
 in the past because future contracts are not allowed.

This rule checks to make sure that the ContractDate XML element has a date that is before the current date. If this rule fails the validation will fail and an error message which is the body of the assert element will be returned to the user.


Schematron schemas are suitable for use in XML Pipelines, thereby allowing workflow process designers to build and maintain rules using XML manipulation tools. The W3C's XProc pipelining language, for example, has native support for Schematron schema processing through its "validate-with-schematron" step.[3]

Since Schematron schemas can be transformed into XSLT stylesheets, these can themselves be used in XML Pipelines which support XSLT transformation. An Apache Ant task can be used to convert Schematron rules into XSLT files.

There exists also native Schematron implementation, like the Java implementation from Innovimax/INRIA, QuiXSchematron, that also do streaming.

See also

External links

  • Academia Sinica Computing Centre's Schematron Home Page
  • Schematron Wiki including Implementer's FAQ
  • A book on Schematron (in German)
  • Schematron online tutorial and reference


  1. ^
  2. ^
  3. ^
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Hawaii eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.