dimanche 29 août 2010

What is a schematron?

The Schematron is a language and toolkit for making assertions about patterns found in XML documents. It can be used as a friendly validation language and for automatically generating external annotation (links, RDF, perhaps Topic Maps). Because it uses paths rather than grammars, it can be used to assert many constraints that cannot be expressed by DTDs or XML Schemas.
Schematron 1.5 can be trivially implemented using XSLT in two stages.
  • Scimitar is a Python implementation of draft ISO Schematron
  • For .NET users, Schematron.NET is an open source implementation at Source Forge.
  • IBM have added Schematron to their Alphaworks technology Business Integration Information Conformance Statements.
  • The JAXEN XPath engine for Java may be optimized for better Schematron performance.
  • A JUnit-related open source project Schema Unit Test allows Schematron schemas.
  • Open GIS (Geographical Information Systems) has added Schematron as a constraint language to their Geography Markup Language.
  • Topologi Professional Edition is an analytics and reporting tool, including editor, that allows Schematron validation of XML and SGML documents. Multiple documents can be validated in batch. Document sets can be sampled, and a Schematron "usage schema" generated, to allow testing that new documents have the same structure as previous documents. Schematron validation is also possible from the context-sensitive tree editor, and the markup editor.
  • James Clarks' Jing librrary supports RELAX NG, WXS datatypes, Schematron, NRL and (through Xerces) WXS.
  • The Topologi XML Judge is GUI-based tool for Windows. It is useful for checking large numbers of files, for developing schemas and for second opinions on other Schema tools.
  • The Topologi Schematron Validator is GUI-based tool for Windows, free for educational and charity uses. It is useful for checking large numbers of files, for developing schemas and for experimentation. It supports Schematron, RELAX NG, Examplotron, WXS, XML DTD, SGML DTDs. It supports Schematron schemas embedded in WXS or RELAX NG Schemas.
  • The Topologi Collaborative Markup Editor is an XML editor for Windows, Mac OS X and Linux. It supports Schematron, RELAX NG, Examplotron, WXS, XML DTD, SGML DTDs. It supports Schematron schemas embedded in WXS or RELAX NG Schemas.
  • The Topologi Proxy Validator supports Schematron and WXS.
  • The OxygenXML editor supports Schmematron 1.5 validation
  • The reference Academia Sinica Computing Centre Schematron 1.5 implementation sits on top of any XSTL implementation. It is useful if you want to create command-line or batch tools, and you want to tailor the output.
  • The ZVON Schematron is an alternative implementation for XSLT. It provides simple output mapping, and is straight-forward and well-coded.
  • The FourThought 4Suite is a Python-based server system which offers Schematron validation.
  • For Perl users, Kip Hampton's XML::Schematron modules bring Schematron functionality as a Perl module.
  • For C++ users, Ivelin Ivanov's Xmlform is a Java implementation forming part of Apache's validation components, and is based on JXpath It is reported to be much faster than XSLT-based implementations.
  • For .NET developers, Daniel Cazzulino's Open Source Schematron.NET is a C# implementation. It is reported to be much faster than XSLT-based implementations.
  • For iteractive editing with Schematron, use the Academia Sincia Schematron in conjunction with James Clark's XT XSLT processor. XT provides line numbers in the standard format used by FSF GNU Emacs, Edinburgh's XED editor, and many others.
A range of implementations are available for various situations:
Schematron can be used in any language for which there is an XSLT implementation available (e.g. FourThought's Python version of XSLT, Java, C++, Perl) and it is also possible to create a native implementation without using XSLT. Early versions were prototyped using OmniMark.

PEPPOL is using schematron to implement the business rules in CEN BII profiles messages validation.

Rick Jelliffe is one of the fathers of schematron : http://www.oreillynet.com/pub/au/1712

Aucun commentaire:

Enregistrer un commentaire