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>George</to>
  <from>John</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>George</to>
<from>John</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 を使用して、あなた自身のデータを検証することもできます。