DTD (Document Type Definition)

文書型定義

 DTDは、XMLのスキーマ言語の一種である。XML 1.0の仕様書の中で規定されているため、XMLにおけるもっともベーシックなスキーマ言語と言える。

 DTDは、スキーマ言語としての機能のほかに実体参照などの定義も含んでおり、スキーマ言語以外の機能を利用される場合もある。

 DTDはXMLの前身であるSGMLより基本的な構文を受け継いでいるため、他のXML関連技術と比較して、長い利用実績があり、長所も短所も明確になっている。一方で、DTDで満たせないニーズのために、他のスキーマ言語の開発も盛んである。しかし、実体参照などはDTDと関連するため、スキーマ言語としてDTD以外を使用する場合でも、DTDの知識は必要とされる。

 以下はDTDの一例である。

<!DOCTYPE document [
<!ENTITY lt "&#38;#60;">
<!ENTITY gt "&#62;">
<!ENTITY amp "&#38;#38;">
<!ENTITY apos "&#39;">
<!ENTITY quot "&#34;">
<!ELEMENT fileName (#PCDATA)>
<!ELEMENT timeLastAccess (#PCDATA)>
<!ELEMENT timeCreation (#PCDATA)>
<!ELEMENT timeModify (#PCDATA)>
<!ELEMENT fileSize (#PCDATA)>
<!ELEMENT head (fileName|timeLastAccess|timeCreation|timeModify|fileSize)*>
<!ELEMENT br EMPTY>
<!ELEMENT document (#PCDATA|head|br)*>
]>

 <!DOCTYPEはDTD全体を示す。その後ろのキーワードが、ルート要素の名前を示す。<!ENTITYは、実体参照を規定する。<!ELEMENTは要素を規定する。

 DTDは、XMLの構文に従っていないため、独自の構文を覚える必要がある。また、DTDは適切に名前空間に対応していない。その他、不特定の複数の定義を組み合わせて1つの文書定義として使用する(モジュール)、といった使い方に対応していない(モノリシック)。これらの点から、現在ではDTDに代わる新しいスキーマ言語が求められている。

 

関連記事

関連用語

リンク

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

アイティメディアの提供サービス

キャリアアップ