# RELAX NG

RELAX NG is the name for the unification of two XML schema languages:

- TREX
- RELAX

The specification for RELAX NG has been developed by the OASIS RELAX NG TC.

The following are available:

- Jing, a validator for RELAX NG implemented in Java. This is written on top of SAX2.
- Trang, a program for converting between different schema languages, focused on RELAX NG; in particular, it can convert between the compact and XML syntaxes, it can convert between RELAX NG and DTDs, and it can convert from RELAX NG to W3C XML Schema
- DTDinst, a program for producing an XML instance representation of XML DTDs; this is also used by Trang for converting from XML DTDs into RELAX NG
- Namespace Routing Language (NRL), a XML language for combining schemas for multiple namespaces. Jing implements this.
- The Design of RELAX NG, a paper discussing the design of RELAX NG
- Notes on implementing RELAX NG validators. These describe the implementation techniques used in Jing.
- A RELAX NG schema for RELAX NG.
- A RELAX NG implementation of XHTML modularization.
- A RELAX NG schema for XSLT 1.0 stylesheets.
- An XSLT stylesheet that converts from RELAX Core into RELAX NG. This should be able to handle any correct RELAX Core module, but it does not implement the RELAX Core semantic of implicitly allowing undeclared attributes. (However, the sample implementation is capable of recovering from such errors.) Handling the RELAX `include` feature requires an extension over XSLT 1.0; the stylesheet can currently use the extensions implemented in either MSXML or SAXON; it can be easily adapted to any other conforming XSLT processor that supports a result tree fragment to node set conversion function. This stylesheet will not work with XT, since XT does not implement keys. There's also an auxiliary stylesheet that removes some redundancies generated by the previous stylesheet.
- A RELAX NG schema for RELAX Core, including the schema for datatypes. This was generated using the above stylesheets from the RELAX module for RELAX core, and then hand-edited a bit.
- A test suite for RELAX NG.