RELAX NG by Eric van der Vlist will be published by O'Reilly & Associates (ISBN: 0596004214)

You are welcome to use our annotation system to give your feedback.


RELAX NG as a pivot format

These last two examples were a little bit extreme, but nevertheless RELAX NG appears to be the perfect pivot format for tasks related to XML schema work in any schema language, providing a useful common ground developers can use to convert among various schema forms. Kohsuke Kawaguchi's work on the Sun Multi-Schema Validator (MSV) takes advantage of this capability. Kawaguchi explained that the grammar-based schema languages supported by MSV (DTDs, RELAX NG, Relax and W3C XML Schema) were all translated into a common data model by the validator. The validation algorithm relied on this single data model. That data model is simply RELAX NG. This clearly demonstrates that the expressive power of RELAX NG is so useful and flexible that 99% of the constraints which could be described with other schema languages can be described with RELAX NG.

RELAX NG's advantages could also be a major drawback: if RELAX NG has so much more expressive power than other languages, it could mean that a schema written with RELAX NG would be impossible to translate.

Fortunately, this issue is more theoretical than practical. Although there are situations where RELAX NG could not be translated into W3C XML Schema, they aren't likely to happen often in real life schemas. If you can further imagine a situation were it would happen in real life, you can always balance your need to express such a schema in RELAX NG against your need to be able to publish a W3C XML Schema schema. I am confident when I write that most RELAX NG schemas can be translated into other schema languages, even automatically. James Clark has developed Trang, a magic tool that takes a RELAX NG schema and converts it into W3C XML Schema or a DTD.

RELAX NG's structures support both creation by hand and by auto-generation. RELAX NG can support the growing number of applications which generate their schemas from logical models using high levels of abstraction rather creating them from scratch. Whether you are using UML as your design tool, a simple spreadsheet like the OASIS UBL project, or sample documents like my Examplotron, it is easier to derive a RELAX NG schema than to derive a schema using any other schema language.


You are welcome to use our annotation system to give your feedback.
[Annotations for this page]
All text is copyright Eric van der Vlist, Dyomedea. During development, I give permission for non-commercial copying for educational and review purposes. After publication, all text will be released under the Free Software Foundation GFDL.