PDF、組版と文書変換のアンテナハウス株式会社

サイトマップ
hr トップ
ページ
hr デスクトップ
製品情報
hr システム
製品情報
hr DITA
サービス
hr 電子書籍
サービス
hr サポート hr 製品の購入
について
hr お問い合わせ hr 会社案内 hr
スペース

DTDってなに?

アンテナハウス株式会社

DTDってなに?

一番簡単な例

DTD(Document Type Definition)とは、非常に簡単に言いますと文書の型を定義するものです。

「XMLの基本用語」 先頭のサンプル「表」のDTDは、次のようになります。

<!ELEMENT 表 (データ+) >
        <!ELEMENT データ (日付,勘定科目,金額,備考) >
        <!ATTLIST データ record CDATA #REQUIRED >
        <!ELEMENT 日付 (#PCDATA) >
        <!ELEMENT 勘定科目 (#PCDATA) >
        <!ELEMENT 金額 (#PCDATA) >
        <!ELEMENT 備考 (#PCDATA) >

説明

<!ELEMENT
要素型宣言というものです。要素型宣言に続いて、要素の名前とその要素に許される子供を指定します。
要素の名前が「表」であることを指定します。
(データ+)
「表」要素に許される子供は、「データ」要素です。+(プラス記号)は子供の要素が1回以上出現することを示します。
>
要素型宣言の終了区切りです。
データ (日付,勘定科目,金額,備考)
「データ」要素には、「日付」、「勘定科目」、「金額」、「備考」という要素がこの順番で1回ずつ出現します。
<!ATTLIST
属性リスト宣言というものです。要素に対して属性と属性値を関連付けるために使用します。
データ record CDATA #REQUIRED
「データ」要素は、「record」という属性を持ちます。「record」属性の型はCDATA(文字列型)であり、#REQUIRED(必須)であることを示します。
日付 (#PCDATA)
日付の内容は、文字データであることを示します。

XMLファイルをDTDに関連付ける

XMLファイルにはドキュメントタイプ宣言を含むことができます。ドキュメントタイプ宣言でXMLファイルをDTDに関連付けます。

「XMLの基本用語」 先頭のサンプル「表」のXMLファイルと「表」DTDを関連付けると次のようになります。

<!DOCTYPE 表 [
        <!ELEMENT 表 (データ+) >
        <!ELEMENT データ (日付,勘定科目,金額,備考) >
        <!ATTLIST データ record CDATA #REQUIRED >
        <!ELEMENT 日付 (#PCDATA) >
        <!ELEMENT 勘定科目 (#PCDATA) >
        <!ELEMENT 金額 (#PCDATA) >
        <!ELEMENT 備考 (#PCDATA) >
        ]>
        <表>
        <データ record="1">
            <日付>5月10日</日付>
            <勘定科目>交通費</勘定科目>
            <金額>1,260</金額>
            <備考>B社まで、タクシー</備考>
        </データ>
        <データ record="2">
            <日付>5月10日</日付>
            <勘定科目>交際費</勘定科目>
            <金額>15,000</金額>
            <備考>B社Aさんを接待</備考>
        </データ>
        <データ record="3">
            <日付>5月13日</日付>
            <勘定科目>会議費</勘定科目>
            <金額>900 </金額>
            <備考>喫茶店で打ち合せ</備考>
        </データ>
        <データ record="4">
            <日付>5月18日</日付>
            <勘定科目>交通費</勘定科目>
            <金額>320 </金額>
            <備考>麹町から飯田橋間</備考>
        </データ>
        <データ record="5">
            <日付>5月20日</日付>
            <勘定科目>資料費</勘定科目>
            <金額>3,000</金額>
            <備考>研修資料費</備考>
        </データ>
        <データ record="6">
            <日付>5月25日</日付>
            <勘定科目>資料費</勘定科目>
            <金額>2,000</金額>
            <備考>図書(ビジネス書)</備考>
        </データ>
        </表>

説明

<!DOCTYPE
ドキュメントタイプ宣言というものです。ドキュメントタイプ宣言に続いて、文書型名(DTDの名前)とDTDのIDもしくはDTD本体を置きます。
文書型名が「表」であることを示します。
[
DTDの開始を示します。
]>
DTDの終了を示します。

上のように[ ]内に置いたDTDを内部DTDと言います。

外部DTD

IDを使ってXMLファイルを外部DTDファイルに関連付けることができます。

IDを使って外部DTDファイルに関連付けた例

「表」DTDの内容をファイル「table.dtd」に保存したとします。そのとき上述の例は次のように表すことができます。

<!DOCTYPE 表 SYSTEM "table.dtd" >
        <表>
        <データ record="1">
            <日付>5月10日</日付>
            <勘定科目>交通費</勘定科目>
            <金額>1,260</金額>
            <備考>B社まで、タクシー</備考>
        </データ>
        <データ record="2">
            <日付>5月10日</日付>
            <勘定科目>交際費</勘定科目>
            <金額>15,000</金額>
            <備考>B社Aさんを接待</備考>
        </データ>
        (中略)
        <データ record="6">
            <日付>5月25日</日付>
            <勘定科目>資料費</勘定科目>
            <金額>2,000</金額>
            <備考>図書(ビジネス書)</備考>
        </データ>
        </表>

説明

SYSTEM
システム識別子というものです。
"table.dtd"
table.dtdファイルがXMLファイルと同じホルダにあることを示しています。
スペース
トップページサポートお問い合わせ会社案内
サイトマップ個人情報保護の考え方とお願い
Copyright Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.