DTD 教程
什麼是 DTD?
DTD 是文件型別定義 (Document Type Definition) 的縮寫。
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 檔案中,選擇“檢視原始碼”以檢視 DTD。
上面的 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”型別。
外部 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 檔案 »
這是包含 DTD 的檔案 "note.dtd":
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>