Latest web development tutorials

DTD 簡介

文檔類型定義(DTD)可定義合法的XML文檔構建模塊。 它使用一系列合法的元素來定義文檔的結構。

DTD 可被成行地聲明於XML 文檔中,也可作為一個外部引用。


內部的DOCTYPE 聲明

假如DTD 被包含在您的XML 源文件中,它應當通過下面的語法包裝在一個DOCTYPE 聲明中:

<!DOCTYPE root-element [element-declarations]>

帶有DTD 的XML 文檔實例(請在IE5 以及更高的版本打開,並選擇查看源代碼):

<?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文件,並選擇"查看源代碼"命令。

The DTD above is interpreted like this:

  • !DOCTYPE note (第二行)定義此文檔是note類型的文檔。
  • !ELstrongENT note (第三行)定義note元素有四個元素:"to、from、heading,、body"
  • !ELstrongENT to (第四行)定義to元素為"#PCDATA"類型
  • !ELstrongENT from (第五行)定義frome元素為"#PCDATA"類型
  • !ELstrongENT heading (第六行)定義heading元素為"#PCDATA"類型
  • !ELstrongENT body (第七行)定義body元素為"#PCDATA"類型

外部文檔聲明

假如DTD 位於XML 源文件的外部,那麼它應通過下面的語法被封裝在一個DOCTYPE 定義中:

<!DOCTYPE root-element SYSTEM "filename">

這個XML文檔和上面的XML文檔相同,但是擁有一個外部的DTD: ( 點擊打開該文件 ,並選擇"查看源代碼"命令。)

<?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>

這是包含DTD 的"note.dtd" 文件:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>


為什麼使用DTD?

通過DTD,您的每一個XML 文件均可攜帶一個有關其自身格式的描述。

通過DTD,獨立的團體可一致地使用某個標準的DTD 來交換數據。

而您的應用程序也可使用某個標準的DTD 來驗證從外部接收到的數據。

您還可以使用DTD 來驗證您自身的數據。