DTDとは

広告

ここからDTDについて見て行きます。今までのXML文書は自分で好きなように要素を定義して使っていましたが、そのXML文書の中で出てくる要素や要素の出現が可能な回数などを定義するのがDTDになります。

下記のような簡単なXML文書で考えて見ます。

<?xml version="1.0" encoding="Shift-Jis" ?>

<顧客データ>
    <顧客>
        <名前>加藤</名前>
        <性別>女</性別>
        <身体データ>
            <身長>150</身長>
            <体重>48</体重>
        </身体データ>
    </顧客>
</顧客データ>

上記のXML文書では単に好きなタグを使って記述しているだけなのですが、ここで他の人が同じ形式で顧客データを表すXML文書を作成することが出来るように、ルールを取り決めたいと思います。

"顧客データ"には"顧客"という要素が含まれる。
"顧客"には"名前","性別","身体データ"という3つの要素が含まれこの順序で記述する。
"身体データ"には"身長","体重"という2つの要素が含まれる。

このようにXML文書のルールを明確にすることで、複数の人で共通した形式のXML文書を作成することができます。このようにXML文書の記述するルールを定義したものがDTDとなります。

詳細は次のページから見ていきますので、ここではどのようにDTDが記述されるかだけを見ておいて下さい。

sample4.xml

<?xml version="1.0" encoding="Shift-Jis" ?>

<!DOCTYPE 顧客データ[
  <!ELEMENT 顧客データ (顧客)>
  <!ELEMENT 顧客 (名前, 性別, 身体データ)>
  <!ELEMENT 名前 (#PCDATA)>
  <!ELEMENT 性別 (#PCDATA)>
  <!ELEMENT 身体データ (身長, 体重)>
  <!ELEMENT 身長 (#PCDATA)>
  <!ELEMENT 体重 (#PCDATA)>
]>

<顧客データ>
    <顧客>
        <名前>加藤</名前>
        <性別>女</性別>
        <身体データ>
            <身長>150</身長>
            <体重>48</体重>
        </身体データ>
    </顧客>
</顧客データ>

XMLビューアーで見た結果は下記のようになります。

XML文書にDTDを記述した例

上記の「<!DOCTYPE」の部分から「]>」の部分がDTDになります。(XMLビューアー上では省略されて表示されています)。

次のページではXMLがDTDに記述された規則に適合しているかどうかの検証方法を見ていきたいと思います。

( Written by Tatsuo Ikura )