曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
</DIVISION>
</LEAGUE>
</SEASON>
當(dāng)整個(gè)聯(lián)賽全包含在內(nèi)時(shí),產(chǎn)生的文檔從帶長(zhǎng)標(biāo)記的699K 縮短到帶短標(biāo)記的391K,節(jié)約了44%。但是信息的內(nèi)容是相同的。
兩個(gè)文檔壓縮后很接近,短標(biāo)記文檔58K,長(zhǎng)標(biāo)記文檔66K。
XML 實(shí)用大全
第 233 頁(yè)
在注釋內(nèi)可以包括和應(yīng)該包括的信息量沒有限制。包括得多使DTD 更長(zhǎng)(這樣就使檢測(cè)更難,下載更慢)。然而,在下面的
幾章中,您將學(xué)會(huì)如何在多個(gè)XML 文檔間共享同一DTD 以及將DTD 拆成更好管理的多個(gè)部分。這樣,使用注釋的缺點(diǎn)就是暫
時(shí)的了。我建議在DTD 中自由地使用注釋,尤其是對(duì)于打算公用的DTD。
XML 實(shí)用大全
第 234 頁(yè)
8.7 在文檔間共享通用的DTD
前面的合法的例子都在文檔的序言部分包含了DTD。但是XML 真正的功能來(lái)自于不同的人們編寫的可為許多文檔共享通用的
DTD。如果DTD 不是直接包含在文檔內(nèi),而是從外部聯(lián)結(jié)而來(lái),則DTD 的改變會(huì)自動(dòng)傳播給使用它的所有文檔。另一方面,
當(dāng)DTD 改變時(shí)并不能確保其向后兼容性。不兼容的改變會(huì)破壞文檔。
當(dāng)使用外部DTD 時(shí),文檔類型聲明要加以改變。DTD 不再是包括在方括號(hào)中,而是在SYSTEM 關(guān)鍵詞后接一個(gè)能找到DTD 的
絕對(duì)或相對(duì)的URL。例如:
<!DOCTYPE root_element_name SYSTEM "DTD_ URL">
這里root_element_name 像以前一樣是基本元素的名稱,SYSTEM 是一個(gè)XML 關(guān)鍵詞,DTD_URL 是能找到DTD 的絕對(duì)或相對(duì)的
URL。例如:
<!DOCTYPE SEASON SYSTEM "baseball.dtd">
為說(shuō)明這一過(guò)程讓我們來(lái)轉(zhuǎn)換一個(gè)熟悉的例子。清單8-12 包括了棒球統(tǒng)計(jì)的內(nèi)部DTD。我們要把這份清單轉(zhuǎn)換為外部DTD。
首先,去掉DTD 并把它放入自己的文檔。DTD 是起始于<!DOCTYPE SEASON [終止于]>之間的所有內(nèi)容。但不包括<!DOCTYPE
SEASON [和]>。可以將其保存在名為baseball.dtd 的文檔內(nèi),如清單8-13 所示。文檔名并不重要,通常用的擴(kuò)展名為.dtd。
清單8-13:棒球的DTD 文檔
<!ELEMENT YEAR (#PCDATA)>
<!ELEMENT LEAGUE (LEAGUE_NAME, DIVISION, DIVISION, DIVISION)>
<!--American or National-->
<!ELEMENT LEAGUE_NAME (#PCDATA)>
<!--East, West, or Central-->
<!ELEMENT DIVISION_NAME (#PCDATA)>
<!ELEMENT DIVISION (DIVISION_NAME, TEAM+)>
<!ELEMENT SEASON (YEAR, LEAGUE, LEAGUE)>
<!ELEMENT TEAM (TEAM_CITY, TEAM_NAME, PLAYER*)>
<!ELEMENT TEAM_CITY (#PCDATA)>
<!ELEMENT TEAM_NAME (#PCDATA)>
<!ELEMENT PLAYER (GIVEN_NAME, SURNAME, P, G,
GS, AB?, R?,H?, D?, T?, HR?, RBI?, SB?, CS?,
XML 實(shí)用大全
第 235 頁(yè)
SH?, SF?, E?, BB?, S?, HBP?, CG?, SO?, ERA?, IP?,
HRA?, RA?, ER?, HB?, WP?, B?, WB?, K?)
>
<!--=======================-->
<!--Player Info-->
<!--Player’s last name-->
<!ELEMENT SURNAME (#PCDATA)>
<!--Player’s first name-->
<!ELEMENT GIVEN_NAME (#PCDATA)>
<!--Position-->
<!ELEMENT P (#PCDATA)>
<!--Games Played-->
<!ELEMENT G (#PCDATA)>
<!--Games Started-->
<!ELEMENT GS (#PCDATA)>
<!--=======================-->
<!--Batting Statistics-->
<!--At Bats-->
<!ELEMENT AB (#PCDATA)>
<!--uns-->
<!ELEMENT R (#PCDATA)>
<!--Hits--> ?
<!ELEMENT H (#PCDATA)>
<!--Doubles-->
XML 實(shí)用大全
第 236 頁(yè)
<!ELEMENT D (#PCDATA)>
<!--Triples-->
<!ELEMENT T (#PCDATA)>
<!--Home Runs-->
<!ELEMENT HR (#PCDATA)>
<!--Runs Batted In-->
<!ELEMENT RBI (#PCDATA)>
<!--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)>
<!--=======================-->
XML 實(shí)用大全
第 237 頁(yè)
<!--Pitching Staistics-->
<!--Complete Games-->
<!ELEMENT CG (#PCDATA)>
<!--Shut Outs-->
<!ELEMENT SO (#PCDATA)>
<!--ERA-->
<!ELEMENT ERA (#PCDATA)>
<!--Innings Pitched-->
<!ELEMENT IP (#PCDATA)>
<!--Home Runs hit Against-->
<!ELEMENT HRA (#PCDATA)>
<!--Runs hit Against-->
<!ELEMENT RA (#PCDATA)>
<!--Earned Runs-->
<!ELEMENT ER (#PCDATA)>
<!--Hit Batter-->
<!ELEMENT HB (#PCDATA)>
<!--Wild Pitches-->
<!ELEMENT WP (#PCDATA)>
<!—Balk-->
<!ELEMENT B (#PCDATA)>
<!--Walked Batter-->
<!ELEMENT WB (#PCDATA)>
<!--Struck Out Batter-->
XML 實(shí)用大全
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實(shí)用大全(70)