James Clark, Chair of the OASIS RELAX NG Technical Committee, has announced the release of the RELAX NG Tutorial as an official 'Committee Work Product' and the availability of validation software for RELAX NG schemas. The draft RELAX NG Tutorial edited by James Clark and Makoto MURATA is structured as a graded series of examples illustrating and explaining principal features of the RELAX NG structure-validation language. A RELAX NG schema "specifies a pattern for the structure and content of an XML document" in support of validation software which can test XML instances against these declarations. Of the tutorial's three appendices, Appendix A "Comparision with XML DTDs" most succinctly summarizes the goals and methodological approach taken in RELAX NG vis-à-vis SGML/XML DTDs. "RELAX NG provides functionality that goes beyond XML DTDs. In particular, RELAX NG (1) uses XML syntax to represent schemas; (2) supports datatyping; (3) integrates attributes into content models; (4) supports XML namespaces; (5) supports unordered content; (6) supports context-sensitive content models; (7) has improved support for cross-references. RELAX NG does not support features of XML DTDs that involve changing the infoset of an XML document. In particular, RELAX NG; (8) does not allow defaults for attributes to be specified; (9) does allow entities to be specified; (10) does allow notations to be specified; (11) does not specify whether white-space is significant. Also RELAX NG does not define a way for an XML document to associate itself with a RELAX NG pattern." A collection of other resources (schemas, transformation stylesheets, software) supporting RELAX NG has also been announced. James Clark's 'Jing' is a validator for RELAX NG implemented in Java. As a command-line tool, it validates an XML instance against a RELAX NG schema and reports (any) errors in a file; one may specify multiple XML files for validation in a single command. Jing is written on top of SAX2, and represents an adaptation of James Clark's validator for TREX. Jing supports validation of datatypes from W3C XML Schema Part 2. The version 2001-06-11 implementation is available for download as a JAR file and as a Win32 executable for use with the Microsoft Java VM; the sources are also available.
RELAX NG Technical Committee Charter: "The purpose of this committee is to create a specification for a schema language for XML based on TREX and RELAX. The key features of RELAX NG are that it is simple, easy to learn, uses XML syntax, does not change the information set of an XML document, supports XML namespaces, treats attributes uniformly with elements so far as possible, has unrestricted support for unordered content, has unrestricted support for mixed content, has a solid theoretical basis, and can partner with a separate datatyping language (such W3C XML Schema Datatypes)."
Principal references:
- OASIS RELAX NG Technical Committee
- RELAX NG mailing list archives
- RELAX NG Tutorial
- Jing, a validator for RELAX NG implemented in Java
- RELAX NG Resources [schemas, transformation stylesheets, software]
- RELAX NG Formal Semantics
- RELAX NG Issues list
- RELAX NG Schema for RELAX NG
- Comments: send email to relax-ng-comment@lists.oasis-open.org
- "RELAX NG" - Main reference page.
- "XML Schemas" - Main reference page.