A posting from Murata Makoto (Project Editor of RELAX Core at ISO/IEC JTC1) reports on the result of an ISO/IEC JTC1 ballot of May 10, 2001 which approved the RELAX Core specification as ISO/IEC Technical Report 22250-1. RELAX Core is part of the larger RELAX [Regular Language Description for XML] specification, which currently includes RELAX Namespace, and will later have RELAX Data. RELAX Core is "a simple language for describing XML tag sets, viz., for describing markup languages containing a single XML namespace; the RELAX Namespace is used to describe markup languages containing more than a single XML namespace consisting of more than one RELAX Core document." RELAX Core "was originally created as a JIS TR and was then submitted to ISO via the fast-track procedure. The final text will be prepared in an upcoming meeting in August 2001. The latter half, RELAX Namespace, has been approved as JIS TR and will soon be submitted to ISO." In a parallel universe, RELAX Core and TREX (Tree Regular Expressions for XML) are to be unified, since the two are very similar as structure-validation languages. The unified TREX/RELAX language will be called RELAX NG [for "Relax Next Generation," pronounced "relaxing"]. This design work is now being conducted within the OASIS TREX Technical Committee, where a (first) specification is expected by July 1, 2001. The OASIS TC may also be renamed 'RELAX NG' to reflect the new name of the unified TREX/RELAX language. The RELAX NG development team plans to submit the OASIS specification to ISO, given the importance of ISO standards in Europe. Relax NG progress may be tracked via the mailing list archives or by comparing the issues list with the original TREX tutorial and specification.
From the RELAX specification: "This Technical Report specifies mechanisms for formally specifying the syntax of XML-based languages. For example, the syntax of XHTML 1.0 can be specified in RELAX. Compared with DTDs, RELAX provides the following advantages: (1) Specification in RELAX uses XML instance [i.e., document] syntax, (2) RELAX provides rich datatypes, and (3) RELAX is namespace-aware. The RELAX specification consists of two parts, RELAX Core and RELAX Namespace. This Technical Report specifies RELAX Core, which may be used to describe markup languages containing a single XML namespace. Part 2 of this Technical Report specifies RELAX Namespace, which may be used to describe markup languages containing more than a single XML namespace, consisting of more than one RELAX Core document. Given a sequence of elements, a software module called the RELAX Core processor compares it against a specification in RELAX Core and reports the result. The RELAX Core processor can be directly invoked by the user, and can also be invoked by another software module called the RELAX Namespace processor. This Technical Report also specifies a subset of RELAX Core, which is restricted to DTD features plus datatypes. This subset is very easy to implement, and with the exception of datatype information, conversion between this subset and XML DTDs results in no information loss. RELAX Core uses the built-in datatypes of XML Schema Part 2. Datatypes can be used as conditions on attributes or used as hedge models. Datatypes in RELAX Core represent sets of strings. Given a string and a datatype, it is possible to determine if the string is contained by the set of strings represented by that datatype..."
Implementations of RELAX include validators (e.g., RELAX verifier for Java, and VBRELAX verification tool), a converter from XML DTD to RELAX, and a 'Relaxer' Java class generator.
RELAX Core and TREX unification: James Clark wrote on XML-DEV 2001-04-24: "... Yes, it's true. I can confirm that Murata-san and myself are working on the unification of TREX and RELAX. The work is currently being carried on within the OASIS TREX TC... We plan to submit the specification produced by the OASIS TC as a JIS standard, and then as an ISO standard." Makoto added: "I hope to promote RELAX NG as a JIS standard and then submit it to ISO as a fast-track DIS (not DTR), but somebody might disagree. If RELAX NG becomes an OASIS standard, that would help my plan very much. If we can live with an ISO DTR, that would be very easy..."
Also from Murata Makoto on the RELAX/TREX unification: "RELAX Core and TREX are similar languages, and its unification is being considered as OASIS. I would assume that the unified language is a version 2 of RELAX Core. I personally hope to publish that language as a JIS (rather than a technical report, which is experimental) and then submit it to ISO/IEC as a fast-track DIS. (Of course, official decisions are required.) The name of the unified language might become RELAX NG or RELAX ++. RELAX Namespace (after some revision) should play with the unified language as well as RELAX Core..." [2001-05-03 posting]
Principal references:
- "Regular Language Description for XML (RELAX): RELAX Core [current draft]
- RELAX web site
- 'relaxng.org' - possible namespace [stub] for Relax NG, viz., namespace URI http://relaxng.org/ns/m.n where 'm.n' is the version number
- RELAX Data DTD (April 5, 2001) and RELAX Data schema written by RELAX Core (April 5, 2001). From Kohsuke KAWAGUCHI. [cache]
- Minutes for RELAX NG TC 2001-05-17
- TREX - Tree Regular Expressions for XML
- TREX Tutorial
- RELAX NG Issues List 2001-05-23
- TREX Issues List 2001-05-18
- Minutes for RELAX NG TC 2001-05-17
- Minutes of TREX TC Meeting 2001-05-03
- Versioning strawman [namespace versioning model]
- ID/IDREF strawman
- Datatypes in TREX
- 'TREX and RELAX unite'
- TREX TC mailing list archives
- "Tree Regular Expressions for XML (TREX)" - Main reference page.
- "Regular Language Description for XML (RELAX)" - Main reference page.
- "RELAX NG." - Main reference page.
- "XML Schemas" - Main reference page.