曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
通常,任何相對(duì)于文檔位置所形成合法的URL 的引用都可以接受。例如,下面這些都是合法的文檔類型聲明:
<!DOCTYPE SEASON SYSTEM"/xml/dtds/baseball.dtd">
<!DOCTYPE SEASON SYSTEM"/dtds/baseball.dtd">
<!DOCTYPE SEASON SYSTEM "../baseball.dtd">
一個(gè)文檔不能有多于一個(gè)的文檔類型聲明,即不能有多于一個(gè)的<!DOCTYPE >標(biāo)記。要使用不止在一個(gè)DTD 中聲明
的元素,就需要使用外部參數(shù)實(shí)體引用。這些內(nèi)容將在下一章中討論。
8.7.2 公共的DTD
XML 實(shí)用大全
第 243 頁(yè)
關(guān)鍵詞SYSTEM 是為單個(gè)作者或小組所用的私有的DTD 使用的。但作為XML 承諾的一部分,可令覆蓋整個(gè)產(chǎn)業(yè)的廣泛組織(如
ISO 或IEEE)能夠?qū)⒐睤TD 加以標(biāo)準(zhǔn)化,以便用于各自的專門(mén)領(lǐng)域。這樣的標(biāo)準(zhǔn)化可以讓人們不用為同一項(xiàng)目重復(fù)作標(biāo)記,
并且使用戶共享公用文檔更容易。
為創(chuàng)建組織之外的編寫(xiě)者設(shè)計(jì)的DTD 使用PUBLIC 關(guān)鍵詞而不使用SYSTEM 關(guān)鍵詞。并且DTD 有一個(gè)文件名。句法如下:
<!DOCTYPE root_element_name PUBLIC "DTD_name" "DTD_URL">
root_element_name 仍然是基本元素名稱。PUBLIC 是XML 關(guān)鍵詞,說(shuō)明這一DTD 是公共使用并具有名稱。DTD_name 是與此
DTD 聯(lián)系的名稱。有些XML 處理程序會(huì)使用名稱從中心庫(kù)中檢索DTD。最后,如果DTD 不能根據(jù)名稱從熟知的庫(kù)中檢索到,
則DTD_URL 是一個(gè)能找到該DTD 的相對(duì)或絕對(duì)URL。
DTD 名稱與XML 名稱略有不同。它們只能包含ASCII 字母字符、空格、軟回車符、換行符和下面的標(biāo)點(diǎn)符號(hào):
-’()+,/:=?;!*#@$_%。 而且,公共DTD 要遵守一些約定。
如果一項(xiàng)DTD 是ISO 標(biāo)準(zhǔn),它的名稱要以字符串“ISO”開(kāi)始。如果是非ISO 標(biāo)準(zhǔn)組織批準(zhǔn)的DTD,它的名稱以加號(hào)(+)開(kāi)始。
如果不是標(biāo)準(zhǔn)組織批準(zhǔn)的DTD,它的名稱以連字符 (-)開(kāi)始。這些開(kāi)始字符串后接雙斜線(//) 和DTD 所有者的名字,其后
接另一個(gè)雙斜線和DTD 描述的文檔類型,然后又是一個(gè)雙斜線后接ISO639 語(yǔ)言標(biāo)識(shí)符,如EN 表示英語(yǔ)。在
http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt 處列有完整的ISO639 標(biāo)識(shí)符。例如,棒球DTD 可以如下命
名:
-//Elliotte Rusty Harold//DTD baseball statistics//EN
本例說(shuō)明這個(gè)DTD 不是由任何標(biāo)準(zhǔn)組織批準(zhǔn)的(-),為Elliotte Rusty Harold 所有,描述棒球統(tǒng)計(jì),用英語(yǔ)編寫(xiě)。通過(guò)DTD
名稱指向這一DTD 的完整的文檔類型聲明如下:
<!DOCTYPE SEASON PUBLIC
"//Elliotte Rusty Harold//DTD baseball statistics//EN"
"http://metalab.unc.edu/xml/dtds/baseball.dtd">
讀者也許注意到了許多HTML 編輯器如BBEdit 會(huì)在其創(chuàng)建的每個(gè)HTML 文檔開(kāi)端放入下列字符串:
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML//EN">
現(xiàn)在可能 了解這些字符串是什么意思了!它表明文檔符合一項(xiàng)非標(biāo)準(zhǔn) (-) 的HTML 的DTD,由W3C 用英語(yǔ)制作。
從技術(shù)上說(shuō),W3C 不是一個(gè)標(biāo)準(zhǔn)組織,因?yàn)樗某蓡T限于交納會(huì)費(fèi)的公司而不是官方批準(zhǔn)的實(shí)體。它只出版建議而不
是標(biāo)準(zhǔn)。實(shí)際上這種區(qū)別沒(méi)有關(guān)系。
8.7.3 內(nèi)部和外部DTD 子集
盡管大多數(shù)文檔由易于定義的部分組成,但不是所有的文檔都使用共同的模板。許多文檔為自己使用而增加特定元素時(shí),可
能需要像HTML 4.0 DTD 這樣的標(biāo)準(zhǔn)DTD。其他文檔可能只使用標(biāo)準(zhǔn)元素,但需要對(duì)它們重新排序。例如,一個(gè)HTML 主頁(yè)可
XML 實(shí)用大全
第 244 頁(yè)
能有一個(gè)BODY 元素,它必須包含一個(gè)H1 標(biāo)題標(biāo)記后接一份DL 定義列表,而另一個(gè)HTML 主頁(yè)可能有一個(gè)BODY 元素,它包
含許多不同的順序不定的標(biāo)題標(biāo)記、段落和圖像。如果特定的文檔與同一站點(diǎn)上其他頁(yè)面具有不同的結(jié)構(gòu),在文檔本身內(nèi)定
義結(jié)構(gòu)比在單獨(dú)的DTD 中定義更有用。這種方法也使文檔更易于編輯。
為達(dá)此目的,文檔可使用內(nèi)部和外部DTD。內(nèi)部聲明放在<!DOCTYPE>標(biāo)記尾部的方括號(hào)中。例如,假如需要一個(gè)包括棒球統(tǒng)
計(jì)并有頁(yè)眉和頁(yè)腳的主頁(yè)。這樣的文檔可如清單8-15 所示。棒球信息從文檔baseball.dtd 中得到,構(gòu)成外部DTD 子集;
本元素DOCUMENT 以及元素TITLE 和SIGNATURE 的定義來(lái)自包含于文檔中的內(nèi)部DTD 子集。這有點(diǎn)不尋常。一般的,更為通
用的部分可能應(yīng)該是外部DTD 的一部分,而內(nèi)部?jī)?nèi)容則更與特定專題有關(guān)。
清單8-15:DTD 具有內(nèi)部和外部DTD 子集的棒球文檔
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE SEASON SYSTEM "baseball.dtd"> [
<!ELEMENT DOCUMENT (TITLE, SEASON, SIGNATURE)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT COPYRIG T (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT LAST_MODIFIED (#PCDATA)>
<!ELEMENT SIGNATURE (COPYRIGHT, EMAIL, LAST_MODIFIED)>
]>
<DOCUMENT>
<TITLE>1998 Major League Baseball Statistics</TITLE>
<SEASON>
<YEAR>1998</YEAR>
<LEAGUE>
<LEAGUE_NAME>National</LEAGUE_NAME>
<DIVISION>
<DIVISION_NAME>East</DIVISION_NAME>
<TEAM>
<TEAM_CITY>Atlanta</TEAM_CITY>
XML 實(shí)用大全
第 245 頁(yè)
<TEAM_NAME>Braves</TEAM_NAME>
</TEAM>
<TEAM>
<TEAM_CITY>Florida</TEAM_CITY>
<TEAM_NAME>Marlins</TEAM_NAME>
</TEAM>
<TEAM>
<TEAM_CITY>Montreal</TEAM_CITY>
<TEAM_NAME>Expos</TEAM_NAME>
</TEAM>
<TEAM>
<TEAM_CITY>New York</TEAM_CITY>
中國(guó)航空網(wǎng) m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實(shí)用大全(72)