RELAXに関するFAQ(Frequently Asked Questions)

Maintained by: 村田真

Table of Contents

RELAXに関するFAQ(Frequently Asked Questions)

一般

RELAXの標準化について

RELAXの採用について

RELAXの実装について

RELAXに関する資料について

RELAXに関するFAQ(Frequently Asked Questions)

一般

RELAXとは何か?

RELAX (REgular Language description for XML)は、XMLベース の言語を記述するための仕様である。たとえば,XHTML 1.0はRELAXによって記 述することができる。

RELAXで書かれた記述のことをRELAX文法という。XML文書をRELAX 文法と照合し、検証することができる。

従来用いられてきたDTD(Document Type Definition)と比べて、RELAXは次のような特徴を備えている。

  • XML構文を採用している
  • 豊富なデータ型を備えている
  • 名前空間を扱うことができる

RELAXの標準化について

RELAXを制定しているのは?

RELAXを制定したのは、日本のINSTAC XML SWGである。この委員 会は、JSAから委託を受けてXML関連の標準化を行っている。JSAはRELAXをJIS Technical Reportとして発行する予定である。

INSTAC XML SWGのメンバ以外にも,多くの人がRELAXの制定に 協力している.RELAXの付録には,貢献した人の名前の一覧を載せる予定である.

JIS Technical Reportとは何か?

標準情報(TR)は, JIS化の前段階の技術標準等を積極的に公表することに よって, オープンな議論を推進し, 関係者間のコンセンサスの形成を促すもの である。

RELAXは日本だけの仕様なのか?

RELAXに関する重要な文書はすべて英語で提供される。日本以外のユー ザがRELAXを使うことになんら制限はない。

世界的にRELAXが実装され、 利用されるようになれば、ISOのfast trackに日本からRELAXを提案する可能性 がある。

RELAXにコメントは可能か?

公開されたRELAXの仕様へのコメントを、INSTAC XML SWGに送付 することができる。英文のコメントももちろん考慮する。

XML Schemaが制定されつつあるのに,なぜRELAXが必要なのか?

XML Schemaは、DTDが扱う範囲を大きく越えた仕様である。 したがって,制定にも実装にも採用にも長い時間を必要とする。XML Schemaのすべての機能を利用するには、 SAXやDOMの拡張も必要になる。

一方、RELAXはXML Schemaのように野心的ではなく、制定も実装 も容易である。DTD相当の機能とXML Schemaの豊富なデータ型とをXMLインスタ ンス構文で表現し、いくつかの独自拡張を行ったものがRELAXである。

RELAXは、DTDからXML Schemaへの移行を容易にする。RELAXは、 DTD にデータ型の情報を付加したものとみなすことができ,DTDから直ちに 移行することができる。XML Schemaが完成したときには、必要なら、RELAXからXML Schemaに移行すればよ い。

RELAXは一つの仕様か?

RELAXは、RELAX CoreとRELAX Namespaceの二つの部分から なる。RELAX Coreは、一つの名前空間の属する要素とその属性を扱う。RELAX Namespaceは、複数の名前空間を扱う。

RELAX Coreの適合性水準とは?

RELAX Coreは二つの適合性水準を備えている。適合性水準 classicは、文書構造に関する機能をDTD相当に制限する。適合性水準fully relaxed は、RELAX Coreのすべての機能を備える。適合性水準classicはきわめて簡単なので, 広く実装されることが期待できる.

RELAXの制定スケジュールは?

2000年3月に、RELAX CoreがJIS Technical Reportとして発行さ れる。名前空間を使わないのであれば、この時点のRELAXはすでに十分に安定 した仕様と考えてよい。

6月には、RELAX NamespaceがJIS Technical Reportとして 発行される。名前空間を使うユーザであっても、この時点で安定した仕様 が入手できる。

RELAXの採用について

RELAXは生き残れるのか?

2000年2月の時点では分からないとしか答えられない。

ある仕様が生き残るかどうかは、それがどの規格団体によって 制定されたかによって決まるわけではない。使われない仕様を作っ てしまうことは、どの規格団体にも有り得る。他の規格団体と同じく, INSTACもJSAもRELAXの成功を保証することは出来ない.

生き残るのは、広く実装され、使われた仕様である。RELAXは、 特定の企業にコントロールされない仕様であり、簡単に実装でき、 XML SchemaやDTD との移行が容易であるという特徴を備えている。 RELAXが生き残る可能性は多いにあると、我々は思っている。

生き残れるかどうか分からないRELAXを使うのは危険ではないか?

たとえRELAXが消えていくことになっても、RELAXで書かれた資 産が無駄になることはまったくない。

RELAXからDTDやXML Schema への移行は可能であり、ほとんどの 場合にはプログラムでかんたんに変換できる。これは、(1) RELAXがXML Schemaのデータ型をそのまま採用している、(2) 文書構造に関する機能の基本 部分(RELAX Core - classic) はDTDとほとんど等しいという理由による。

RELAXを使うことにどんなメリットがあるのか?

技術的には二つの大きなメリットがある。一つは、DTDにはない 豊富なデータ型をXML Schemaから借りている点である。もう一つは、インスタ ンス構文を採用したことによるツールの作りやすさである。

XMLインスタンス構文と豊富なデータ型が必要なら、とりあえず RELAXを使っておくのもよいかも知れない。XML Schemaが完成したときには、 変換プログラムによって簡単に資産を移行することができる。

RELAXには政治的なメリットもある。RELAXは特定の企業がコン トロールする仕様ではなく、INSTACが制定した工業標準である。RELAXを採用し ても、特定の企業の実装に縛られることはなく,どの実装を使用しても 構わない.

RELAXの実装について

DTDからRELAXへのコンバータは?

Javaで書かれた、DTDからRELAXへのコンバータがある。パ ラメタ実体は単に展開される。

このコンバータのソースはGPLにしたがってまもなく公開される。

RELAXの検証プログラムは?

C++で書かれた検証プログラムが存在する。

この検証プログラムのソースはGPLにしたがって公開されている。

RELAXからXML Schemaへのコンバータは?

XML Schemaの仕様が確定していないため,現時点はコンバータは 存在しない.XML SchemaがW3C勧告になった時点で、コンバータを開発し, GPLで公開することが予定されている。RELAX Coreの適合性水準classicを 普通に使うかぎり、このコンバータで機械的にXML Schemaに変換することが 可能である。

RELAXのためのAPIは?

RELAXは、XMLパーサを使うことが前提である。ユーザプログラ ムは、既存のXMLパーサの提供するAPI(DOMやSAXなど)を利用すればよく、 RELAX独自のAPIは必要としない。

RELAXに関する資料について

RELAXを知るために最適の資料は?

HOW TO RELAXは、ユーザ向けに書かれたチュートリアルである。ふんだん に例を用い、分かりやすく書かれている。

RELAXの言語仕様書は?

現在作成中である。

RELAXの理論的背景を説明した資料は?

RELAXの理論的背景は、生け垣オートマトンである。生け垣オー トマトンをできるだけ簡単に説明した資料がある(英文)。

RELAXを実装するために参考になる資料は?

現在作成中である.現時点では,C++で書かれた検証プログラム のソースにもっとも詳細な情報がある。