連載
» 2001年05月22日 00時00分 公開

XMLの基礎を理解する10のポイント(3):第三部 XML文書を利用する (2/4)

[加山恵美,@IT]

ポイント#8 スキーマが活用範囲を広げる

 スキーマ言語とはXML文書の構造やデータ型を定義するためのものだ。前回の「XML文書の構造」で説明したように、XML文書には、形式さえ正しければどんなタグを利用しても、どんな構造でも構わない「整形式のXML文書」が存在する一方で、DTDのようなスキーマ言語によって文書型がきちんと与えられ、それに適合した「妥当なXML文書」がある。

 スキーマ言語を使うと、XML文書の中で使えるタグの種類や、内容の型や範囲、要素の入れ子関係など、XML文書の構造(スキーマ)を厳密に定義できる。つまり、スキーマ言語によってスキーマを定義しておけば、XML文書の情報を定型化できるとともに、そのXML文書の定型処理をするためのプログラムを記述することも容易になる。BtoBのような情報交換のフォーマットとしてXMLが採用されるのには、こうした特徴があるためだ。スキーマ言語の存在は、XML文書をコンピュータで処理するうえで重要な意味を持っているのである。

 しかし現時点ではスキーマ言語関連の仕様策定は、XML技術進化の中でやや混沌としている。

 そもそもXMLにはDTDという文書型定義のためのスキーマ言語がある。しかしこれはSGMLの技術を色濃く引き継いでいるため、例えば、記述方法が面倒で、しかもXMLとは異なる文法で記述され、データ型の表現が少ないなどの欠点が指摘される。何よりも名前空間の仕様との整合性がとれていないのが大きな問題だ。

 そこでDTDに代わるスキーマ言語として、幾つかの仕様が名乗りを挙げている。その本命として1999年にW3Cから出てきたのがXML Schemaだ。ところがXML Schemaは、XMLに寄せられる多くの要求を取り入れようとした結果、仕様が膨大かつ難解でシステム実装が困難であるとの批判が多く出ている。しかも、その巨大さゆえになかなか勧告にならず、そのすきをぬってW3C以外の組織から、RELAXXDRのような新たなスキーマ言語の提案が行われている。だがそんな矢先、つい最近2001年5月2日付でXML Schemaは正式に勧告となった。このニュースは今後のXMLスキーマ言語の流れに影響を与えそうだ。

 先ほど触れたRELAX(REgular LAnguage description for XML)は、日本情報技術標準化研究センター(INSTAC)のXML SWGが制定している日本発のスキーマ言語だ。RELAXはXML Schemaに比べて理解も実装も容易といわれている。XMLによってスキーマを記述可能で、データ型が豊富、名前空間にも対応、さらにXML SchemaやDTDへの移行も考慮されている。将来的なスキーマ言語の動向に合わせてRELAX資産を無駄にすることはないように配慮されている。

 スキーマ言語は、数値データなどの構造の記述が得意なもの、簡潔な記述を特徴とするものなど、それぞれの特徴を持っており、1つのスキーマ言語がすべてのニーズを満たすというよりも、主要な複数のスキーマ言語が使われ続ける、という見方がある。恐らくここに紹介した3つのスキーマ言語は、そうした主要な言語の1つになる可能性が高いだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。