用正確的語法的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
" ">
<!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; ©right;</footer>
</note>
試一試» 實體有三個部分:一個與符號(&)一個實體名稱和分號(;)
何時使用DTD /模式?
使用DTD,人的獨立團體可以同意使用標準的DTD交換數據。
使用DTD,您可以驗證你從外界接收到的數據是有效的。
你也可以使用一個DTD來驗證你自己的數據。
如果你想學習DTD,請閱讀我們的DTD教程 。
何時不使用DTD /模式?
XML不要求一個DTD /架構。
當您使用XML試驗,或者當您用小的XML文件時,創建的DTD可能是在浪費時間。
如果你開發應用程序,等到規範穩定您添加文檔定義之前。 否則,你的軟件可能停止,因為驗證錯誤的工作。