最新的Web開發教程
 

XML DTD


用正確的語法的XML文檔被稱為"Well Formed"

根據DTD驗證XML文檔既是"Well Formed""Valid"


有效的XML文檔

一個"Valid"的XML文檔是一個"Well Formed" XML文檔,這也符合一個DTD的規則:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

DOCTYPE聲明,在上述的例子中,是對外部DTD文件的引用。 該文件的內容顯示在下面的段落。


XML DTD

一個DTD的目的是定義XML文檔的結構。 它定義了合法元素的列表結構:

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

該DTD上述這樣解釋:

  • !DOCTYPE筆記定義了文檔的根元素筆記
  • !ELEMENT記定義note元素必須包含的元素: "to, from, heading, body"
  • !ELEMENT到定義為元素為類型"#PCDATA"
  • !從元素定義從元素為類型"#PCDATA"
  • !ELEMENT標題定義標題元素為類型"#PCDATA"
  • !ELEMENT體定義body元素為類型"#PCDATA"

#PCDATA意味著語法分析文本數據。


使用DTD對實體聲明

DOCTYPE聲明也可以用來定義特殊字符和字符串,在文檔中使用:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE note [
<!ENTITY nbsp "&#xA0;">
<!ENTITY writer "Writer: Donald Duck.">
<!ENTITY copyright "Copyright: w3ii.">
]>

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<footer>&writer;&nbsp;&copyright;</footer>
</note>
試一試»

實體有三個部分:一個與符號(&)一個實體名稱和分號(;)


何時使用DTD /模式?

使用DTD,人的獨立團體可以同意使用標準的DTD交換數據。

使用DTD,您可以驗證你從外界接收到的數據是有效的。

你也可以使用一個DTD來驗證你自己的數據。

如果你想學習DTD,請閱讀我們的DTD教程


何時不使用DTD /模式?

XML不要求一個DTD /架構。

當您使用XML試驗,或者當您用小的XML文件時,創建的DTD可能是在浪費時間。

如果你開發應用程序,等到規範穩定您添加文檔定義之前。 否則,你的軟件可能停止,因為驗證錯誤的工作。