DTD タイプ

ドキュメントタイプ定義(DTD)は、合法な XML 文書構築モジュールを定義します。それは、文書の構造を定義するための一連の合法な要素を使用します。

DTD は XML 文書内で行にわたって宣言されることができますが、外部参照としても宣言できます。

内部的な DOCTYPE 声明

DTD があなたの XML 源ファイルに含まれている場合、以下の文法で DOCTYPE 声明に括られて包装されるべきです:

<!DOCTYPE 根要素 [要素宣言]>

DTD付きのXMLドキュメントの例(IE5およびそれ以降のバージョンで開き、ソースコードを表示を選択してください):

<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
  <to>ジョージ</to>
  <from>ジョン</from>
  <heading>リマインダー</heading>
  <body>会議を忘れないでください!</body>
</note>

このXMLファイルをブラウザで開き、「ソースコードを表示」コマンドを選択してください

以下のDTD説明は以下の通りです:

!DOCTYPE note (第二行)このドキュメントは以下の定義です note のドキュメントです

!ELEMENT note (第三行)定義 note 要素には「to、from、heading、body」の4つの要素があります

!ELEMENT to (第四行)定義 to 要素は "#PCDATA" タイプです

!ELEMENT from (第五行)定義 from 要素は "#PCDATA" タイプです

!ELEMENT heading (第六行)定義 heading 要素は "#PCDATA" タイプです

!ELEMENT body (第七行)定義 body 要素は "#PCDATA" タイプです

外部ドキュメント宣言

DTDがXMLソースファイルの外部にある場合、以下の構文でDOCTYPE定義に組み込まれます:

<!DOCTYPE 根要素 SYSTEM "ファイル名">

このXMLドキュメントは上のXMLドキュメントと同じですが、外部のDTDを持っています: (IE5で開きます、そして「ソースコードを表示」コマンドを選択してください。)

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>ジョージ</to>
<from>ジョン</from>
<heading>リマインダー</heading>
<body>会議を忘れないでください!</body>
</note>

これはDTDを含む "note.dtd" ファイルです:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

DTDを使う理由は何ですか?

DTDを通じて、あなたのそれぞれのXMLファイルはそのフォーマットに関する説明を持ちます。

DTDを通じて、独立したグループは標準のDTDを交換データに一貫して使用できます。

そして、あなたのアプリケーションも外部から受け取ったデータを検証するために標準のDTDを使用することができます。

DTDを使って、あなた自身のデータを検証することができます。