DTDはどんなとき必要なの?
XMLにDTDは必須ではないとのことですが、どのようなケースでは必要で、どのようなケースでは不要なのでしょうか?

回答/富士ソフトABC株式会社 技術センター
2001/9/14

 DTDは「スキーマ記述言語」もしくは「スキーマ言語」と呼ばれ、XML文書で使える構成要素、つまりタグの種類や構造を記述する仕様です。スキーマ言語にはほかにもXML SchemaやRELAXなどがあります(詳しくは「スキーマっていったい何?どんな役割をするものですか?」の回答を参照してください)。

 受発注書や請求書、ビジネス文書など特定の用途に使用されるXML文書は、構造が統一されていればシステムの開発が容易になります(受け取るXML文書の構造がまちまちであるようなシステムの構築は、現実的ではないでしょう)。そのために、ビジネスとしてXML文書で情報交換などをする場合には、あらかじめスキーマ言語でXML文書構造を定義・統一しておくことが一般的です。スキーマ言語を使用して構造を定義しておけば、XMLパーサで文書の妥当性をチェックし、文書構造の統一が保証されるため、アプリケーションで文書を集計したり、統計やグラフを作成したりすることが容易にできるようになります。

 DTDなどのスキーマ言語を使用する利点は、その言語の作成者以外の人でも、まったく同じ構造の文書が作成可能になり、結果として外部とのスムーズなデータのやりとりを実現することです。作成者から見れば、外部から受け取ったXML文書の構造が正しいかどうかをチェックできますし、利用者から見れば構造を間違うことなく文書を作成できるようになります。

 表面的な書き方だけがXMLの仕様に従っていればいい場合、つまり一時的に使うだけのXML文書や、XMLパーサやアプリケーションの利用で文書構造が変化する場合、外部とのデータのやりとりがない場合など、特に厳密に文書構造が統一される必要がないようなXML文書は、スキーマ言語による文書構造の定義は必要ありません。

 

「Ask XML Expert」


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

注目のテーマ

HTML5+UX 記事ランキング

本日月間