[May 19, 2001] 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..."
[May 24, 2001] RELAX NG Tutorial." Edited by James Clark [for the TREX TC]. Draft/Version: 2001-05-24. [Attached is a RELAX NG tutorial based on my TREX tutorial.] "RELAX NG is a simple schema language for XML, based on RELAX and TREX. A RELAX NG schema specifies a pattern for the structure and content of an XML document. A RELAX NG schema thus identifies a class of XML documents consisting of those documents that match the pattern. A RELAX NG schema is itself an XML document... RELAX NG Non-features: The role of RELAX NG is simply to specify a class of documents, not to assist in interpretation of the documents belonging to the class. It does not change the infoset of the document. In particular, RELAX NG does not allow defaults for attributes to be specified, does allow entities to be specified, does allow notations to be specified, [and] does not specify whether white-space is significant. Also, RELAX NG does not define a way for an XML document to associate itself with a RELAX NG pattern." Note section 17, 'Differences from TREX': " (1) the concur
pattern has been removed; (2) the string
pattern has been replaced by the value
pattern; (3) the anyString
pattern has been renamed to text
; (4) the namespace URI is different; (5) pattern elements must be namespace qualified; (6) anonymous datatypes have been removed; (7) the data
pattern can have parameters specified by param
child elements; (8) oneOrMoreTokens
and zeroOrMoreTokens
patterns have been added for matching whitespace-separated sequences of tokens; (9) the data
pattern can have a key
or keyRef
attribute; (10) the replace
and group
values for the combine
attribute have been removed; (11) an include
element in a grammar may contain define
elements that replace included definitions." Note: 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.
[May 19, 2001] RELAX Core Approved as an ISO Technical Report, and New Name RELAX NG. 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. See Minutes for RELAX NG TC 2001-05-17.
"RELAX (REgular LAnguage description for XML) is a specification for describing XML-based languages. XHTML 1.0, for example, can be described in RELAX. A description written in RELAX is called a RELAX grammar. An XML document can be verified against a RELAX grammar. Compared with DTD(Document Type Definition), RELAX has new features: (1) RELAX grammars are represented in the XML instance syntax; (2) RELAX borrows rich datatypes of XML Schema Part 2; (3) RELAX is namespace-aware. Why use RELAX? There are two major technical advantages. First, RELAX provides rich datatypes of XML Schema. Second, the XML-instance syntax of RELAX grammars allows rapid development of software tools." [from the FAQ document]
[November 25, 2000] RELAX Core Published as ISO/IEC DIS 22250-1 with Technical Report in English. Murata Makoto recently announced that RELAX Core has been released as an ISO document: ISO/IEC DIS 22250-1. Text and office systems -- Regular Language Description for XML (RELAX) -- Part 1: RELAX Core Document Type: DIS (Fast Track). Voting on the DIS will end on 2001-05-02. An English translation of the RELAX Core specification (JIS TR) is now available in PDF and .DOC formats. A copy of the DIS is available from ISO for standard ISO charges. The original TR specification (JIS TR X 0029:2000, Regular Language Description for XML (RELAX): RELAX Core) available in English is a 36-page technical report which "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. The TR also defines some datatypes specific to RELAX." Annex A supplies an XML DTD for RELAX Core. Annex B gives a RELAX Module for RELAX Core. [cache PDF ; cache .DOC]
References:
"Regular Language Description for XML (RELAX): RELAX Core [current draft]
- 'relaxng.org' - possible namespace [stub] for Relax NG, viz., namespace URI http://relaxng.org/ns/m.n where 'm.n' is the version number. See discussion on RELAX Core as ISO TR and RELAX Core unification with TREX under the (proposed) name Relax NG.
RELAX Data DTD (April 5, 2001) and RELAX Data schema written by RELAX Core (April 5, 2001). From Kohsuke KAWAGUCHI. [cache]
Report and recommendations of WG1. May 2001. Recommendation of WG1: "WG1 requests that SC34 advise JTC1 and the ITTF of its unanimous determination that the Relax TR is a Type 2 TR and not a Type 3... WG1 considered the content of the Relax TR (N212) in the light of JTC1 regulations and concluded unanimously that it is a Type 2 TR. The WG felt strongly that there was no reasonable possibility of concluding otherwise."
[October 10, 2000] RELAX Core Specification Submitted to ISO. MURATA Makoto reported on the 'reldeve@egroups.com' mailing list: "The English version of the RELAX Core specification has been sucessfully submitted to the fast track procedure of ISO. It will automatically become a Draft Technical Report of ISO. I will speak with the chair of SC34 about the possibility of disclosing the submitted document to the public."
[February 24, 2000] A communiqué from Murata Makoto (XML SWG, Information Technology Research and Standardization Center) reports on the opening of the official site for RELAX at the URL http://www.xml.gr.jp/relax. RELAX (REgular LAnguage for XML) is "a language for representing regular sets of XML documents as grammars" and is related to the W3C XML Schema work: it uses the datatypes of XML Schema and "helps migration from XML DTDs to XML Schema." An overview is provided in a presentation abstract -- based on a formal presentation on RELAX to be given at the XTech Conference by MURATA Makoto, HIYAMA Masayuki, and KOSAKI Motohiro. The Web site also provides a RELAX tutorial, and a FAQ document, together with the relevant formal specifications and examples. RELAX is being standardized by INSTAC XML SWG of Japan; development plans call for the RELAX Core V1.0 to be published as JIS TR in March, 2000. RELAX is based on the hedge automaton theory. For computer scientists: the "RELAX Core = Datatypes + Horn clauses + Regular Hedge Grammars".
[April 13, 2000] K. Kawaguchi (Swift, Inc.) posted an announcement for the availability of a "RELAX Verifier for Java", with documentation on company Web site, http://www.swiftinc.co.jp/. "The 'RELAX Verifier for Java' is a 100% pure Java package that validates XML instance with the given RELAX grammer. This product is licensed [as OpenSource] under the terms of Apache Software License. That means you can use it freely for commercial purposes. Swift, Inc. offers billed-support for this product." The package is now available for download. RELAX (REgular LAnguage description for XML) "is a specification for describing XML-based languages. XHTML 1.0, for example, can be described in RELAX. A description written in RELAX is called a RELAX grammar. An XML document can be verified against a RELAX grammar... RELAX is a combination of (1) features of DTD, and (2) rich datatypes of XML Schema represented in the XML syntax. RELAX also has some other mechanisms, but they have been eliminated from the conformance level "classic". RELAX helps migration from DTD to XML Schema. You can assume that RELAX is DTD combined with datatype information in the XML instance syntax and start to use RELAX right now. When XML Schema is available, migration from RELAX to XML Schema will be possible without loss of datatype information."
[September 01, 2000] Relaxer Presentations. Murata Makoto (IBM, Tokyo Research Laboratory) recently posted a reference for a tutorial and presentation on 'Relaxer' given at the Montréal Extreme Markup Languages Conference 2000. Relaxer has been designed and develped by Asami-san [ASAMI Tomoharu]. RELAX (REgular LAnguage description for XML) is a namespace-aware specification for describing XML-based languages which borrows rich datatypes from XML Schema Part 2; the RELAX grammar can be written as an XML document. Relaxer is the Java class generator that addresses a XML document complied with the XML model defined by RELAX. According to the published abstract for "Relaxer: Java classes from RELAX modules": "Relaxer is a Java program that generates Java classes from RELAX modules: XML documents valid against a RELAX module can be handled by the Java classes generated from that RELAX module. Relaxer liberates programmers from tedious work: (1) Variables in generated classes have programmer-friendly names, since they are borrowed from RELAX modules; (2) Datatypes specified in RELAX modules are used as datatypes of Java variables; (3) Convenient methods such as reader/writer for XML documents and access function are generated; and, (4) Functions for design patterns 'factory', 'composite' and 'visitor' are generated. Unlike other Java class generators or XML-Java mapping tools, Relaxer supports all features of RELAX Core including mixed content models, element content models, and standard attributes such as xml:lang, xml:space and xml:base. Relaxer has been extensively used by some early adopters, and has received very positive feedback." The Relaxer Tutorial and Relaxer slide presentation are available online. See also the posting on XMLHACK. Note also in this connection that the RELAX Verifier for Java has been updated. The RELAX Verifier can validate XML document against RELAX grammar, reporting errors in XML documents and their locations; it can be used both from an application and command-line. Recent changes: (1) RELAX Verifier is now capable of generating validation record (role,label, and datatype information); (2) Some methods/members are renamed according to Java fashion; (3) The DOMVerifier class as a separate class is obsoleted; it is re-written by using DOM2SAXFilter class; (4) The Filter mechanism is rewritten by using ForkDocumentHandler."
[October 26, 2000] "Learning to RELAX." [Tutorial] By J. David Eisenberg. From XML.com. October 16, 2000. ['The RELAX schema language is a simpler alternative to W3C XML Schemas. This easy-to-read tutorial shows you just how easy it can be to RELAX.'] "In this article, we'll explore some of the more advanced features of the RELAX schema language by using it to create a schema for the XMLNews-Story Markup Language. Although the XMLNews-Story markup language has been superseded by the News Industry Text Format, I've chosen it because it's simple, quite widely used, looks a great deal like HTML, and its RELAX specification will use most of the features we want to focus on. . . [Summary:] RELAX is a powerful markup language that permits you to specify how other XML documents are to be validated. You may, as with other specification methods (1) specify an element with an ordered sequence of sub-elements; (2) specify an element with a choice of sub-elements; (3) permit mixed content (text outside of tags); and (4) specify attributes for tags. Additionally, RELAX gives you the power to (1) specify in great detail the type and range of data that an element may contain; (2) specify the type and range of values that an attribute may have; (3) permit a single tag to have different content depending upon the context in which it is used; and (3) permit a tag to have different content depending upon the value of that tag's attributes." See also in this connection the RELAX Quick Reference (a quick reference to RELAX schema definition language, covering all its major features).
[May 11, 2000] ASAMI Tomoharu has announced the release of Relaxer Version 0.9. "Relaxer is the Java class generator that addresses a XML document complied with the XML model defined by RELAX. By using Relaxer, no tedious DOM programming is required to make an XML aware program. Relaxer maps a infoset of the XML document modeled by RELAX to Java objects. And it generates a program that interchanges XML documents, DOM tree with Java objects which is instance of the infoset. Features: (1) Xerces is used for XML Parser; (2) XBase feature for include operation [XML Base February 21, 2000]; (3) specify XBase from command line [-xmlBase option]; (4) composite mechanism [-composite option]; (5) visitor mechanism [-visitor option]; (6) enable xml:lang [-useXMLLang option]; (7) enable xml:space [-useXMLSpace option]; (8) enable xml:base [-useXMLBase option]; (9) retain element used by object generation [-xmlElement option]; (10) name style feature [-nameStyle option]. Relaxer is a free software package based on the GPL license."
On hedge/forest theory, see: "SGML/XML and Forest/Hedge Automata Theory."
[April 18, 2000] Note: A public mailing list for RELAX in English has been created. It is an unmoderated list. See the description in the 'lists' document.
See also: "Relax, and Take it Easy." By Simon St. Laurent. XTech 2000 Report. March 02, 2000. "RELAX supplies a simple tool for creating grammars that describe XML-based languages, providing a lightweight alternative to XML Schema Structures. Although RELAX is built in large part on the theoretical framework of "hedge grammars," it deliberately takes a lightweight approach to document description. Like other schema proposals, it uses an XML document syntax to describe document structures..."
[May 10, 2000] Steve Newcomb on RELAX and architectural forms: "I'm watching the development of RELAX and I'm hoping that RELAX-based systems will meet the following requirements that are today met by DTDs in conjunction with architectural forms (ISO 10744:1997 Annex A.3)...