2000年8月7日
アンテナハウス株式会社
DTD(Document Type Definition)とは、非常に簡単に言いますと文書の型を定義するものです。
「XMLの基本用語」 先頭のサンプル「表」のDTDは、次のようになります。
<!ELEMENT 表 (データ+) > <!ELEMENT データ (日付,勘定科目,金額,備考) > <!ATTLIST データ record CDATA #REQUIRED > <!ELEMENT 日付 (#PCDATA) > <!ELEMENT 勘定科目 (#PCDATA) > <!ELEMENT 金額 (#PCDATA) > <!ELEMENT 備考 (#PCDATA) >
説明
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</金額> <備考>図書(ビジネス書)</備考> </データ> </表>
説明
上のように[ ]内に置いた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</金額> <備考>図書(ビジネス書)</備考> </データ> </表>
説明