DTDとは

最初に DTD とはどのようなもので、どんな場合に使用するのかについて簡単に解説します。

(Last modified: )

目次

  1. DTDとは

DTDとは

例えば支店毎の在庫データを XML 文書で作成してもらい、それを本部で集計する場合を考えてみます。各支店で独自のタグを使って文書を作成してしまうと、各支店から XML 文書を受けとり処理する側はとても大変です。

A支店の在庫に関する文書:

<?xml version="1.0" encoding="UTF-8" ?>
<在庫>
    <商品>
        <名前>自転車</名前>
        <在庫数>20</在庫数>
    </商品>
</在庫>

B支店の在庫に関する文書:

<?xml version="1.0" encoding="UTF-8" ?>
<在庫データ>
    <商品>
        <商品情報>
            <商品名>本棚</商品名>
            <取得年月日>20xx年3月</取得年月日>
        </商品情報>
        <個数>12</個数>
    </商品>
</在庫データ>

そこでどの要素をどのように使用するのか XML の構造を定義します。各支店は同じルールに従って XML 文書を作成します。下記は同じルールに従って作成した XML 文書です。

A支店の在庫に関する文書:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE 在庫データ[
    <!ELEMENT 在庫データ (商品)>
    <!ELEMENT 商品 (名前, 個数)>
    <!ELEMENT 名前 (#PCDATA)>
    <!ELEMENT 個数 (#PCDATA)>
]>

<在庫データ>
    <商品>
        <名前>自転車</名前>
        <個数>20</個数>
    </商品>
</在庫データ>

B支店の在庫に関する文書:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE 在庫データ[
    <!ELEMENT 在庫データ (商品)>
    <!ELEMENT 商品 (名前, 個数)>
    <!ELEMENT 名前 (#PCDATA)>
    <!ELEMENT 個数 (#PCDATA)>
]>

<在庫データ>
    <商品>
        <名前>本棚</名前>
        <個数>12</個数>
    </商品>
</在庫データ>

共通したルールに従って XML 文書が作成されていますので、どの要素の値がどんな値を表しているのかはっきりわかるようになりました。またプログラムなどで文書を処理する場合にも、使用されているタグが分かっていますので処理しやすくなります。

この XML 文書の構造を定義するのに使用するが DTD です。 DTD は XML 文書の構造を定義するための言語と考えて下さい。先ほどのサンプルの場合次の部分が DTD となります。

<!DOCTYPE 在庫データ[
    <!ELEMENT 在庫データ (商品)>
    <!ELEMENT 商品 (名前, 個数)>
    <!ELEMENT 名前 (#PCDATA)>
    <!ELEMENT 個数 (#PCDATA)>
]>

DTD を使って定義した XML の構造は XML 文書の中に直接書いたり外部のファイルとして保存し読み込むことができます。

-- --

DTD とはどのようなもので、どんな場合に使用するのかについて解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。