W3C XML Schema process began with high ambitions to be a more
powerful alternative to DTDs, but many people found XSD to be more
trouble than it was worth. XSD is difficult for many people to
create, difficult to process, has areas (notably
final) that are
fairly contentious, and not everyone wants to define their documents
in terms of object inheritance anyway. While XSD has done well in
some fields of XML work, and Microsoft has implemented it throughout
its product line, there was a plain need for an alternative.
RELAX NG, which has developed largely from work done by XML pioneers Murata Makoto and James Clark, has mathematical foundations rather than the ad hoc object structures used by XSD. Fortunately, you don’t need to know the math to use the schemas, but these foundations make it a lot simpler to both use and process RELAX NG. RELAX NG comes in both an XML syntax and a compact syntax, but we’ll focus on the compact syntax here because it’s generally quite approachable.
RELAX NG is being developed at the Organization for the Advancement of Structured Information Standards (OASIS), a different specification development organization from the W3C, and standardized through the International Organization for Standardization (ISO) as part of the Document Schema Definition Languages (DSDL) effort. For more on OASIS development of RELAX NG, see http://www.oasis-open.org/committees/relax-ng/. For more on the DSDL work, see http://dsdl.org.