在html中,DTD指的是“文檔類型定義”,是一套關(guān)于標(biāo)記符的語法規(guī)則,是html文件的驗證機制,屬于html文件組成的一部分。DTD可定義合法的XML文檔構(gòu)建模塊,它使用一系列合法的元素來定義文檔的結(jié)構(gòu)。
本教程操作環(huán)境:windows7系統(tǒng)、HTML5版、Dell G3電腦。
文檔類型定義(DTD)是一套關(guān)于標(biāo)記符的語法規(guī)則。它是XML1.0版規(guī)格得一部分,是html文件的驗證機制,屬于html文件組成的一部分。
DTD可定義合法的XML文檔構(gòu)建模塊。它使用一系列合法的元素來定義文檔的結(jié)構(gòu)。
DTD 可被成行地聲明于 XML 文檔中,也可作為一個外部引用。
內(nèi)部的 DOCTYPE 聲明
假如 DTD 被包含在您的 XML 源文件中,它應(yīng)當(dāng)通過下面的語法包裝在一個 DOCTYPE 聲明中:
<!DOCTYPE root-element [element-declarations]>
帶有 DTD 的 XML 文檔實例(請在 IE5 以及更高的版本打開,并選擇查看源代碼):
<?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 文件,并選擇"查看源代碼"命令。
以上 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 位于 XML 源文件的外部,那么它應(yīng)通過下面的語法被封裝在一個 DOCTYPE 定義中:
<!DOCTYPE root-element SYSTEM "filename">
這個 XML 文檔和上面的 XML 文檔相同,但是擁有一個外部的 DTD: (點擊打開該文件,并選擇"查看源代碼"命令。)
<?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>
這是包含 DTD 的 "note.dtd" 文件:
<!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
為什么使用 DTD?
-
通過 DTD,您的每一個 XML 文件均可攜帶一個有關(guān)其自身格式的描述。
-
通過 DTD,獨立的團(tuán)體可一致地使用某個標(biāo)準(zhǔn)的 DTD 來交換數(shù)據(jù)。
-
而您的應(yīng)用程序也可使用某個標(biāo)準(zhǔn)的 DTD 來驗證從外部接收到的數(shù)據(jù)。
-
您還可以使用 DTD 來驗證您自身的數(shù)據(jù)。
DTD有三種文檔類型:S(Strict)、T(Transitional)、F(Frameset)。
-
Strict:如果您需要干凈的標(biāo)記,免于表現(xiàn)層的混亂,請使用此類型。請與層疊樣式表(CSS)配合使用
-
Transitional:DTD 可包含 W3C 所期望移入樣式表的呈現(xiàn)屬性和元素。如果您的讀者使用了不支持層疊樣式表(CSS)的瀏覽器以至于您不得不使用 HTML 的呈現(xiàn)特性時使用
-
Frameset: DTD 應(yīng)當(dāng)被用于帶有框架的文檔。除 frameset 元素取代了 body 元素之外,F(xiàn)rameset DTD 等同于 Transitional DTD
html5基本上沒有XHTML 1.0 Transitional嚴(yán)格的要求,并且簡化了很多東西可以直接使用 <!DOCTYPE HTML>
推薦教程:《html視頻教程》