曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
</DIVISION>
</LEAGUE>
</SEASON>
當整個聯賽全包含在內時,產生的文檔從帶長標記的699K 縮短到帶短標記的391K,節約了44%。但是信息的內容是相同的。
兩個文檔壓縮后很接近,短標記文檔58K,長標記文檔66K。
XML 實用大全
第 233 頁
在注釋內可以包括和應該包括的信息量沒有限制。包括得多使DTD 更長(這樣就使檢測更難,下載更慢)。然而,在下面的
幾章中,您將學會如何在多個XML 文檔間共享同一DTD 以及將DTD 拆成更好管理的多個部分。這樣,使用注釋的缺點就是暫
時的了。我建議在DTD 中自由地使用注釋,尤其是對于打算公用的DTD。
XML 實用大全
第 234 頁
8.7 在文檔間共享通用的DTD
前面的合法的例子都在文檔的序言部分包含了DTD。但是XML 真正的功能來自于不同的人們編寫的可為許多文檔共享通用的
DTD。如果DTD 不是直接包含在文檔內,而是從外部聯結而來,則DTD 的改變會自動傳播給使用它的所有文檔。另一方面,
當DTD 改變時并不能確保其向后兼容性。不兼容的改變會破壞文檔。
當使用外部DTD 時,文檔類型聲明要加以改變。DTD 不再是包括在方括號中,而是在SYSTEM 關鍵詞后接一個能找到DTD 的
絕對或相對的URL。例如:
<!DOCTYPE root_element_name SYSTEM "DTD_ URL">
這里root_element_name 像以前一樣是基本元素的名稱,SYSTEM 是一個XML 關鍵詞,DTD_URL 是能找到DTD 的絕對或相對的
URL。例如:
<!DOCTYPE SEASON SYSTEM "baseball.dtd">
為說明這一過程讓我們來轉換一個熟悉的例子。清單8-12 包括了棒球統計的內部DTD。我們要把這份清單轉換為外部DTD。
首先,去掉DTD 并把它放入自己的文檔。DTD 是起始于<!DOCTYPE SEASON [終止于]>之間的所有內容。但不包括<!DOCTYPE
SEASON [和]>?梢詫⑵浔4嬖诿麨閎aseball.dtd 的文檔內,如清單8-13 所示。文檔名并不重要,通常用的擴展名為.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 實用大全
第 235 頁
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 實用大全
第 236 頁
<!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 實用大全
第 237 頁
<!--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 實用大全
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(70)