Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Should you be using RELAX-NG?

Should you be using RELAX-NG?

This item in japanese

RELAX-NG (pronounced "relaxing") is an alternative XML schema definition language characterized by being simpler and more elegant than the more generally known DTD or XSD based languages. W3C XML Schemas in particular has garnered a reputation as being overly complex, with XML luminaries such as Tim Bray commenting:

W3C XML Schemas (XSD) suck. They are hard to read, hard to write, hard to understand, have interoperability problems, and are unable to describe lots of things you want to do all the time in XML.

To help condense some of the information scattered around the internet on the virtues on RELAX-NG, Griffin Brown recently listed 10 reasons to model XML with RELAX NG , not W3C XML Schema. The list includes:

  1. "A better spec means better interoperability".
  2. "Availability of a compact syntax" (RELAX-NG supports a DSL that concisely expresses constraints without resorting to pointy brackets).
  3. "The specification is a stable ISO standard".
  4. "No PSVI" (PSVI is considered harmful).
  5. "No content defaulting".
  6. "Better data typing support".
  7. "More sophisticated modeling".
  8. "More sophisticated grammatical validation".
  9. "Instances have no dependency".
  10. "Growing consensus".
Converting XSD files to RELAX-NG (.RNG) can be accomplished using the "Sun Multi-Schema Validator" tool, which produces verbose format .RNG files. Trang can then be used to convert to these to the compact form.

Rate this Article