曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
參數(shù)實(shí)體引用必須在使用前聲明。下例是非法的,因?yàn)?PCD;引用在使用兩次后才加以聲明:
<!ELEMENT FOOD %PCD;>
<!ELEMENT ANTIMAL %PCD;>
<!ENTITY % PCD "(#PCDATA)">
參數(shù)實(shí)體引用僅能用于提供外部DTD 子集中的聲明。也就是說(shuō),參數(shù)實(shí)體引用僅能出現(xiàn)在外部DTD 子集的聲明中,上述例子
若用于內(nèi)部DTD 子集,則所有引用無(wú)效。
在內(nèi)部DTD 子集中,參數(shù)實(shí)體引用僅能用于聲明之外。例如下述語(yǔ)句在內(nèi)部和外部DTD 子集中均有效。
<!ENTITY % hr "<!ELEMENT HR EMPTY>">
%hr;
當(dāng)然,這與將HR 元素聲明為不帶參數(shù)實(shí)體引用相比沒(méi)有帶來(lái)使用上的便利:
<!ELEMENT HR EMPTY>
參數(shù)實(shí)體引用主要用于內(nèi)部DTD 子集引用外部參數(shù)實(shí)體的情況;也就是引入不同文件中的聲明或部分聲明。下一節(jié)將講述這
部分內(nèi)容。
XML 實(shí)用大全
第 262 頁(yè)
9.5 外部參數(shù)實(shí)體
前述例子中使用單一的DTD,用于定義文檔中所有的元素。然而文檔越長(zhǎng),這種技術(shù)應(yīng)用越少。此外通常希望將DTD 中的部
分內(nèi)容用于許多不同的地方。
例如,對(duì)描述很少發(fā)生變化的郵件地址DTD 來(lái)說(shuō),地址定義非常普遍,且可很方便地應(yīng)用在不同的上下文中。類似地,清單
9-2 中列出的預(yù)定義實(shí)體引用可用于大部分XML 文檔中,但并不想總是對(duì)此清單進(jìn)行拷貝和復(fù)制的操作。
可用外部參數(shù)實(shí)體把較小的DTD 組成大型的DTD。也就是說(shuō),一個(gè)外部DTD 可以鏈接到另一外部DTD,第二個(gè)DTD 引入第一
個(gè)DTD 中聲明的元素和實(shí)體。盡管嚴(yán)禁使用循環(huán)——若DTD2 引用DTD1,則DTD1 不能引用DTD2��但嵌套的DTD 也會(huì)
大型化和復(fù)雜化。
同時(shí),將DTD 分解為小的、更便于管理的組塊,使得對(duì)DTD 的分析處理更加簡(jiǎn)便。由于一個(gè)實(shí)體文檔和完整的DTD 存儲(chǔ)在單
一的文件中,在前幾章中的許多例子都過(guò)于龐大。若文檔和文檔的DTD 分割為幾個(gè)獨(dú)立的文件,就變得更加易于理解。
此外,描述一組元素的DTD 中采用較小的、模塊化的結(jié)構(gòu),使得不同的人或組織創(chuàng)建的DTD 之間的組合和匹配更加簡(jiǎn)便。例
如,在寫一篇關(guān)于高溫超導(dǎo)的文章,可能會(huì)用到描述其中分子的分子科學(xué)DTD、記錄公式的數(shù)學(xué)DTD、描述圖形的向量DTD
和處理解釋性文本的HTML DTD。
特殊情況下,可使用Peter Murray-Rust 的 Chemical Markup Language 中的mol.dtd DTD、W3C 的Mathematical Markup
Language 中的MathML DTD、W3C 的 Scalable Vector Graphics 中的SVG DTD 和W3C 的 XHTML DTD。
我們還可以想出許多混合或者匹配來(lái)自不同領(lǐng)域的概念(也就是標(biāo)記)的例子。人類的想法不會(huì)局限在狹窄的定義范圍內(nèi),
總是試圖遍及所有領(lǐng)域。所編寫的文檔就反映了這種思想。
讓我們研究如何把棒球比賽統(tǒng)計(jì)表組織為幾個(gè)不同的DTD 的聯(lián)合體。本例的層次非常分明。一個(gè)可能的分割方法是為PLAYER、
TEAM 和SEASON 分別編寫一個(gè)DTD。分割DTD 為更便于管理的方法遠(yuǎn)不止一種,但這也不失為一個(gè)很好的例子。清單9-5 顯
示的是只為PALYER 建立的單獨(dú)的DTD,保存在player.dtd 文件中。
清單9-5:PLAYER 元素和它的子元素的DTD(player.dtd)
<!-Player Info ->
<!ELEMENT PLAYER (GIVEN _N AME, SURNAME, P, G,
GS, AB?, R?, H?, D?, ?, HR?, RBI?, SB?, CS?,
SH?, SF?, E?, BB?, S?, HBP?, W?, L?, SV?, CG?, SO?, ERA?,
IP?, HRA?, RA?, ER?, HB?, WP?, B?, WB?, K?)
>
<!-Player s last name ->
XML 實(shí)用大全
第 263 頁(yè)
<!ELEMENT SURNAME (#PCDATA)>
<!-Player s first name ->
<!ELEMENT GIVE _ NAME (#PCDATA)>
<!-Position ->
<!ELEMENT P (#PCDATA)>
<!-Games Played ->
<!ELEMENT G (#PCDATA)> <!桮ames Started ->
<!ELEMENT GS (#PCDATA)>
<!-======================= ->
<!-Batting Statistics ->
<!-At Bats ->
<!ELEMENT AB (#PCDATA)>
<!-Runs ->
<!ELEMENT R (#PCDATA)>
<!-Hits ->
<!ELEMENT H (#PCDATA)>
<!-Doubles ->
<!ELEMENT D (#PCDATA)>
<!-Triples ->
<!ELEMENT T (#PCDATA)>
<!-Home Runs ->
<!ELEMENT HR (#PCDATA)>
<!-Runs Batted In ->
<!ELEMENT RBI (#PCDATA)>
XML 實(shí)用大全
第 264 頁(yè)
<!-Stolen Bases ->
<!ELEMENT SB (#PCDATA)>
<!-Caught Stealing ->
<!ELEMENT CS (#PCDATA)>
<!-Sacrifice Hits ->
<!ELEMENT SH (#PCDATA)>
<!-Sacrifice Flies ->
<!ELEMENT SF (#PCDATA)>
<!-Errors ->
<!ELEMENT E (#PCDATA)>
<!-Walks (Base on Balls) ->
<!ELEMENT BB (#PCDATA)>
<!-Struck Out ->
<!ELEMENT S (#PCDATA)>
<!-Hit By Pitch ->
<!ELEMENT HBP (#PCDATA)>
<!-======================= ->
<!-Pitching Statistics ->
<!-Complete Games ->
<!ELEMENT CG (#PCDATA)>
<!-Wins ->
<!ELEMENT W (#PCDATA)>
<!-Losses ->
<!ELEMENT L (#PCDATA)>
XML 實(shí)用大全
第 265 頁(yè)
<!-Saves ->
<!ELEMENT SV (#PCDATA)>
<!-Shutouts ->
<!ELEMENT SO (#PCDATA)>
<!-ERA ->
<!ELEMENT ERA (#PCDATA)>
<!-Innings Pitched ->
<!ELEMENT IP (#PCDATA)>
<!-Home Runs hit Against ->
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實(shí)用大全(77)