RELAX NG
RELAX NG is the name for the unification of two XML schema languages:
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 an adaptation of the validator for TREX. This is
written on top of SAX2.
- A compact syntax for RELAX NG.
- Trang, a program for translating RELAX NG
schemas into other formats; in particular, this can be used to
translate RELAX NG into DTDs and to translate the non-XML syntax into
the standard syntax.
- DTDinst, a
program for converting XML DTDs into RELAX NG.
- 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.
James Clark