XML DTD
語法正確的 XML 文件稱為“格式良好”。
根據 DTD 驗證的 XML 文件既是“格式良好”又是“有效”。
什麼是 DTD?
DTD 是 Document Type Definition(文件型別定義)的縮寫。
DTD 定義了 XML 文件的結構以及合法的元素和屬性。
有效的 XML 文件
“有效”的 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 檔案的引用。 DTD 檔案的內容將在下面顯示和解釋。
XML DTD
DTD 的目的是定義 XML 文件的結構和合法的元素和屬性。
Note.dtd
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
上面的 DTD 的解釋如下:
- !DOCTYPE note - 定義文件的根元素是 note
- !ELEMENT note - 定義 note 元素必須包含以下元素:“to, from, heading, body”
- !ELEMENT to - 定義 to 元素為 “#PCDATA” 型別
- !ELEMENT from - 定義 from 元素為 “#PCDATA” 型別
- !ELEMENT heading - 定義 heading 元素為 “#PCDATA” 型別
- !ELEMENT body - 定義 body 元素為 “#PCDATA” 型別
提示: #PCDATA 表示可解析字元資料。
使用 DTD 進行實體宣告
DOCTYPE 宣告還可用於定義文件中使用的特殊字元或字串。
示例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY nbsp " ">
<!ENTITY writer "Writer: Donald Duck.">
<!ENTITY copyright "Copyright: W3Schools.">
]>
<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 可能是在浪費時間。
如果您開發應用程式,請等到規範穩定後再新增 DTD。否則,您的軟體可能會因驗證錯誤而停止工作。