What Does Regular Language for XML Next Generation Mean?
Regular Language for XML Next Generation (RELAX NG) is a schema language for eXtensible Markup Language (XML). RELAX NG is used to validate XML instance documents. It was authored by Makoto Murata and James Clark with the design based on Clark’s Tree Regular Expression for XML (TREX) and Murata’s Regular Language description for XML (RELAX).
One of the feature of RELAX NG is that a single RELAX NG schema document can validate many XML instance documents. (Or a single XML instance document can be validated by multiple RELAX NG schema documents.)
Other features of RELAX NG include:
- it is a pattern-based grammar based on a strong mathematical foundation,
- it has XML syntax and compact syntax,
- it supports XML schema datatypes,
- it supports user-defined Schema datatypes,
- it supports XML namespaces,
- it is highly composable,
- it deals with elements and attributes the same way.
RELEAX NG has two different syntaxes, the XML syntax and compact syntax. Filename extensions of RELAX NG are “.rng” and “.rnc” for a regular syntax and compact syntax respectively.
Techopedia Explains Regular Language for XML Next Generation
The acronym makes sense when you see it written as: REgular LAnguage for XML Next Generation.
The authors, Clark and Murata have created RELAX NG after Document Type Definition (DTD) and XML schema languages and have addressed several problems experienced with DTDs and XML schema languages.
RELAX NG’s approach to validation is based on patterns — it uses pattern composition and named patterns to create resusable sections in schema documents.
RELAX NG does not have the type hierarchy of XML schemas and does not support type inheritance but it does support datatyping with datatypes provided by the W3C XML schema as well as user-defined types.
Although RELEAX NG is the most simple validation technology, support is not as widely available as compared to W3C XML schema.