RELAX FAQ (Frequently Asked Questions)

Maintained by: MURATA Makoto

Table of Contents

RELAX FAQ (Frequently Asked Questions)


Standardization of RELAX

Adoption of RELAX

RELAX implementation

RELAX documentation

RELAX FAQ (Frequently Asked Questions)


What is RELAX?

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:

  • RELAX grammars are represented in the XML instance syntax
  • RELAX borrows rich datatypes of XML Schema Part 2
  • RELAX is namespace-aware

Standardization of RELAX

Who standarizes RELAX?

RELAX is standardized by INSTAC XML SWG of Japan. Under the auspices of the Japanese Standard Association(JSA), this committee develops Japanese national standards for XML. JSA is expected to publish RELAX as JIS Technical Reports.

Other than members of INSTAC XML SWG, many people have contributed to the development of RELAX as well. A list of contributors will appear in an appendix of the RELAX specification.

What is an JIS Technical Report?

A JIS Technical Report (TR) provides technical information which is still too immature to become a JIS standard. A JIS TR is published so as to encourage public discussion and promote consensus among relevant parties.

Is RELAX specific to Japan?

All important documents about RELAX are available in English. Non-Japanese users have absolutely no restrictions in using RELAX.

If RELAX is implemented and adopted worldwide, Japan may submit RELAX to the fast track of ISO.

Can I make comments on RELAX?

Anyone can make comments on the published specification of RELAX and submit them to INSTAC XML SWG. Comments written in English will certainly be considered.

Why do we need RELAX, when XML Schema is being devloped?

The scope of XML Schema is very broad. Thus, its standarization, implementation and adoption require a relatively long time. Furthermore, to take full advantage of XML Schema, extensions to DOM and SAX are required.

On the other hand, RELAX is much more modest. Thus, it is easier to standardize, implement, and adopt. 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.

Is RELAX a single specification?

RELAX consits of RELAX Core and RELAX Namespace. RELAX Core handles elements in a single namespace and their attributes. RELAX Namespace is concerned with multiple namespaces.

What are conformance levels of RELAX Core?

RELAX Core has two conformance levels. Conformance level "classic" restricts structural features of RELAX by eliminating features more advanced than DTD. Conformance level "fully relaxed" allows all features of RELAX Core. It is hoped that conformance level "classic" will be widely implemented, since it is so simple.

What is the schedule of RELAX standardization?

In March 2000, RELAX Core is expected to become a JIS Technical Report. If you do not need namespaces, you can assume that this technical report is reasonably stable.

In June 2000, RELAX Namespace is expected to become a JIS Technical Report. This technical report, combined with RELAX Core, should be reasonably stable for everyone.

Adoption of RELAX

Will RELAX survive?

As of January 2000, nobody knows.

The success of a standard cannot be guaranteed by standard bodies. Most standard orginzations have occasionally created dead standards. The same thing applies to INSTAC and JSA; they cannot guarantee the success of RELAX.

Standards will survive only when they are widely implemented and adopted. But there are some reasons that RELAX may surivive. First, RELAX can be easilly implemented; second, migration from DTD to RELAX and from RELAX to XML Schema are kept easy; third, RELAX is not controlled by any private company.

Isn't it risky to use RELAX if it might not be able to survive?

Even if RELAX disappears from the market, resources accumulated in RELAX can be rescued easily.

In most cases, RELAX grammars can be automatically converted to XML Schema without loss of information. This is because (1) RELAX borrows datatypes of XML Schema, and (2) basic structural features of RELAX (Conformance level "classic" of RELAX Core) are almost identical to those of DTD.

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.

If the XML-instance syntax and rich datatypes of XML Schema look attractive, it might be a good idea to use RELAX for now. When XML Schema is completed, you can easily migrate from RELAX to XML Schema by using conversion programs.

RELAX has one political advantage. It is not a proprietary specification controlled by some private companies, but rather a national standard developed by INSTAC. Adopters of RELAX are not caputured by one particular company, but can freely choose any implementation.

RELAX implementation

Are there any converters from DTD to RELAX?

There is a converter (in Java) from DTD to RELAX. Parameter entities in a DTD are merely expanded.

The source program of this converter will be disclosed under GPL soon.

Are there any RELAX validators?

There is one RELAX validator written in C++. Its source program will be disclosed under GPL.

Are there any converters from RELAX to XML Schema?

Since XML Schema is not finalized, no conversion programs are currently available. We plan to develop such a conversion program and disclose its source program under GPL, when XML Schema becomes a W3C recommedation. As long as you use features of Conformance Level "classic" of RELAX Core, you should be able to convert your RELAX grammars to XML Schemas automatically.

Are there any APIs for RELAX?

RELAX is designed so that users can continue to use XML processors. User programs can be built on top of APIs of existing XML processors, and thus there is no need for RELAX-specific APIs.

RELAX documentation

How can I learn RELAX?

HOW TO RELAX is a tutorial of RELAX. It shows plenty of examples and is fairly easy to read.

Is there a formal specification of RELAX?

It is still under construction.

Are there any documents about underlying theories of RELAX?

RELAX is based on the hedge automaton theory. A casual introduction to hedge automata is available.

Are they any documents for RELAX implementors?

Under construction. At present, the source program (in C++) of a RELAX validator provides the most detailed information.