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:
- "A better spec means better interoperability".
- "Availability of a compact syntax" (RELAX-NG supports a DSL that concisely expresses constraints without resorting to pointy brackets).
- "The specification is a stable ISO standard".
- "No PSVI" (PSVI is considered harmful).
- "No content defaulting".
- "Better data typing support".
- "More sophisticated modeling".
- "More sophisticated grammatical validation".
- "Instances have no dependency".
- "Growing consensus".