DTD簡介

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

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

內部的 DOCTYPE 聲明

假如 DTD 被包含在 XML 原始檔案中,它應當通過下面的語法包裝在一個 DOCTYPE 聲明中:

<!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>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting this weekend!</body>

</note>


以上 DTD 解釋如下:

!DOCTYPE note (第二行)定義此文檔是 note 類型的文檔。

!ELEMENT note (第三行)定義 note 元素有四個元素:"tofromheading,body"

!ELEMENT to (第四行)定義 to 元素為 "#PCDATA" 類型

!ELEMENT from (第五行)定義 frome 元素為 "#PCDATA" 類型

!ELEMENT heading (第五行)定義 heading 元素為
"#PCDATA"
類型

!ELEMENT body (第五行)定義 body 元素為 "#PCDATA" 類型

外部文檔聲明

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

<!DOCTYPE 根項目 SYSTEM "檔案名">

這個 XML 文檔和上面的 XML 文檔相同,但是擁有一個外部的 DTD:

<?xml version="1.0"?>

<!DOCTYPE note SYSTEM "note.dtd">

<note>

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting 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 來驗證自身的資料。

回應

有一行行解釋程式碼,最後還有一些好處的歸納,滿不錯的