最新的Web開發教程
 

DTD教程


什麼是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)>