W3Cスキーマに対抗するXMLの新仕様「RELAX NG」

2001/11/9

 XML文書の構造を記述するスキーマ言語は、XMLでビジネス文書を記述するのに不可欠なものだ。1998年にXML 1.0と同時に発表されたスキーマ言語「DTD」は、現在さらに強力な機能を持つ「XML Schema」と呼ばれるスキーマ言語の発表によって置き換えられようとしている。

 とはいえ、XML Schemaはさまざまなビジネス文書の要求を、1つの仕様で早急にかなえようとした結果、あまりに複雑で巨大になりすぎた、という声が多い。こうした声にもかかわらず、XML SchemaはW3Cの下で、XMLにかかわる主要ベンダの技術者が制定作業を行った仕様であるため、標準仕様の1つとしての地位を確立しつつある。

2001 XML JAPANで講演するクラーク氏。同氏は、XML 1.0の仕様策定で重要な役割を果たした

 この現状に一石を投じるのが、W3Cとは異なる業界団体OASISで標準化が進められている、XMLの新しいスキーマ言語「RELAX NG」(リラクシング)だ。都内で11月8日に行われたXMLのイベント「2001 XML JAPAN」の基調講演では、このRELAX NGの標準化をOASISで行っているThai Opensourceのジェームス・クラーク(James Clark)氏が登場。W3CのXMLスキーマの問題点などを鋭く指摘した。

 クラーク氏は、XML 1.0の仕様策定にかかわったメンバーの1人。XMLがこれほど成功した要因を、仕様がモジュール化されていたためだと分析する。「XMLの仕様を策定しているとき、想定されていた分野は電子出版だった。しかし、いまでは電子出版はXMLの用途のごく一部にすぎない。もともと電子出版用に開発されたXMLが成功したのは、シンタックス(文法)とセマンティックス(意味)を分割したからだ」(クラーク氏)。

 つまり、XML 1.0の仕様で決められているのはXMLを記述する方法(つまり文法)だけであり、その文書がどのような意味を持つのかは、そのXML文書を処理するアプリケーションの責任になっている。このように、仕様がカバーする範囲を明確にし、それぞれの仕様をシンプルにした結果が、XMLの成功要因だとした。

 一方でクラーク氏は、W3Cが発表したスキーマ言語XML Schemaは、そうしたモジュール化が行われていないと指摘。いくつかの例の1つとして、データタイプに言及した。XML Schemaでは、XML文書が扱えるデータ型として、整数型、浮動小数点型から日付型、時間型まで豊富に用意している。しかし、日付や時間といった構造を持つ複雑なデータはアプリケーションごとにそのニーズが変わるため、基本仕様からは別モジュールにすべきだという。「XML Schemaの日付型や時間型は、SQLとの親和性のために無理やり追加された型だ。こうしたデータ型は基本仕様から切り離して(アプリケーションごとに)別々に存在するべきだ」(クラーク氏)。

 RELAX NGでは、コアとなるデータ型は仕様の中で定義されているが、そこから拡張して利用者がデータ型を自由に定義できるようになっている。

 また、XML Schemaの仕様があまりに巨大なため、XFormのようなXMLの周辺仕様では、XML Schema仕様の一部だけを自分の仕様の中に取り込むようになっており、一貫性のないモジュール化があちこちで勝手に進む問題も指摘した。

 クラーク氏は、XMLの成功によって、モジュール化の重要性が増している現在、XMLの能力をさらに活用するには、スキーマ言語のような基本仕様こそ慎重にモジュール化されるべきだとし、XML Schemaが持つ複雑で非モジュール化されたスキーマ言語の問題を解決するには、RELAX NGを使うべきだとした。


 アットマーク・アイティでは、ジェームス・クラーク氏へインタビューの機会を得た。

――RELAX NGを作ろうとした動機は、XML Schemaのモジュール化の問題のためですか?

クラーク氏 それはあくまで理由の1つ。XML Schemaは巨大で複雑だという問題もある。XMLは、冷蔵庫やCDプレイヤーといった組み込み機器にまで使われる可能性があり、それを考えるとXML Schemaはあまりにも巨大な仕様だ。XMLは、SGMLの重要なところだけを残したことで成功した。RELAX NGも同じ考えで作っている。

RELAX NGは、村田真氏(右)が中心となって開発されたスキーマ言語RELAXと、クラーク氏(左)が開発したスキーマ言語TREXを統合し、改良したもの。シンプルで分かりやすく、柔軟な機能が特徴だ。村田氏も、XML 1.0に貢献した人物

――RELAX NGは普及するでしょうか?

クラーク氏 ソフトウェアの実装作業は並行して行っているため、動作するソフトウェアはある。XML Schemaは、IBMやマイクロソフトのようなビッグカンパニーがサポートしているから普及するかもしれないが、RELAX NGも選択肢の1つになればいいと思っている。XML Schema以上に普及するかどうかは分からないけれど(笑)。

――RELAX NGの最終仕様はいつごろ、どのようにして発表されますか?

クラーク氏 現在、標準化のための業界団体OASISのRELAX NG技術委員会で、制定作業を行っている(この委員会の議長はクラーク氏自身)。11月末には、その技術委員会から正式な発表がおこなわれる予定だ。

――RELAX NGが発表されたあと、次は何をされますか?

クラーク氏 RELAX NG1.0のあとは、XML文書の参照整合性をチェックする仕様について作業を開始する予定だ。XML文法で記述され、RELAX NGと一緒に動くようなものになると思う。まだまったく作業をしていないため、これからの話だ。

(編集局 新野淳一)

[関連リンク]
RELAX NG日本語ポータル
RELAX NG 入門
OASISのRELAX NG技術委員会(英語)
OASIS
W3C
Thai Opensource

[関連記事]
初のXML技術者認定制度が誕生(@ITNews)
XMLの父が分裂したBtoBの統一を語る(@ITNews)
XML対応を進める各社 (NewsInsight)
インフォテリアがXMLスキーマ設計ツールを出荷 (@ITNews)
浸透し拡散するXML (XML eXpert eXchange)

 

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)