什麼是DTD?
一個DTD是文檔類型定義。
DTD定義的結構和XML文檔的合法元素和屬性。
為什麼使用DTD?
使用DTD,人的獨立團體可以對交換數據的標準DTD達成一致。
應用程序可以使用一個DTD來驗證XML數據是有效的。
內部DTD聲明
如果DTD XML文件中聲明,它必須被包裹在裡面<!DOCTYPE>定義:
具有內部DTD XML文檔
<?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>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
查看XML文件» 在XML文件中,選擇"view source"來查看DTD。
該DTD上述這樣解釋:
- !DOCTYPE note定義了該文件的根元素是音符
- !ELEMENT note定義note元素必須包含四個要素: "to,from,heading,body"
- !ELEMENT to定義為元素為類型"#PCDATA"
- !ELEMENT from定義了從元素為類型"#PCDATA"
- !ELEMENT heading定義標題元素為類型"#PCDATA"
- !ELEMENT body定義body元素為類型"#PCDATA"
外部的DTD聲明
如果DTD是在外部文件中聲明,該<!DOCTYPE>定義必須包含對DTD文件的引用:
與對外部DTD的引用的XML文檔
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
查看XML文件» 這裡是文件"note.dtd"其中包含了DTD:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>