曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
表10-2 IANA 語言代碼
代 碼 語 言
no-bok Norwegian "Book language"(挪威的書面語言)
no-nyn Norwegian "New Norwegian"(新挪威語言)
i-navajo Navajo(印第安語)
i-mingo Mingo
例如:
<P xml:lang="no-nyn">
如果需要使用的語言代碼(或許是Klingon)既不包含在ISO 代碼中也不包含在IANA 代碼中,就可定義新的語言代碼。這
些“x-codes”必須以字符串x-或者X-開始,標識為用戶自定義、私人使用的代碼。例如:
<P xml:lang="x-klingon">
xml:lang 屬性值可包含附加的子代碼部分,用連字符“-”把子代碼與主要的語言代碼區分開。最常見的情況是第一個子
代碼為ISO-3166 規定的兩個字母的國家代碼。最新的國家代碼列表可在下面的地址中找到:
http://www.isi.edu/in-notes/iana/assignment/country-codes。
XML 實用大全
第 309 頁
例如:
<P xml:lang="en-US">Put the body in the trunk of the car.</P>
<P xml:lang="en-GB">Put the body in the boot of the car.</P>
如果第一個子代碼不是ISO 規定的兩個字母國家代碼,就必須是設置IANA 注冊的語言的字符集子代碼,如csDECMCS、roman8、
mac、cp037 或ebcdic-cp-ca。當前使用的代碼列表可以在下述地址中找到:
ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets。
示例如下:
<P xml:lang= "en-mac">
最終的結果可能是第一個子代碼,另一個以x-或X-開頭的x-code。例如:
<P xml:lang= "en-x-tic">
根據慣例,語言代碼寫為小寫格式,國家代碼為大寫格式。可是這僅僅是一個慣例。這是XML 少數對大小寫敏感部分中的一
個,因為它繼承了ISO 對大小寫不敏感的特性。
與DTD 中使用的其他所有屬性相同,為保持文檔的合法性。必須明確地聲明xml:lang 屬性,必需直接用于它所施加的元素
(對于指定xml:lang 屬性的元素的子元素是間接施用)。
或許不希望xml:lang 取任意值。其允許值也應為合法的XML 名稱字,所以通常賦予屬性NMTOKEN 類型。這種類型可限制屬
性值為合法的XML 名稱字。例如:
<!ELEMENT P (#PCDATA)>
<!ATTLIST P xml:lang NMTOKEN #IMPLIED "en">
另外,如果僅允許很少的幾個語言或方言,就可以應用枚舉類型。例如,下述DTD 說明P 元素可以為English 或Latin。
<!ELEMENT P (#PCDATA)>
<!ATTLIST P xml:lang (en | la) "en">
也可以使用CDATA 類型,但是沒有什么理由要這樣做。使用NMTOKEN 或者枚舉類型有助于發現某些潛在的錯誤。
XML 實用大全
第 310 頁
10.7 基于屬性的棒球統計數據的DTD
在第5 章中,為1998 Major League Season 創建了一個結構完整的XML 文檔,文檔中應用屬性來保存賽季(SEASON)的年
份(YEAR)、聯盟名(NAME)、分部名、球隊名、球隊比賽的城市名(CITY)和每個球員的詳細統計資料。下面的清單10-4
是清單5-1 的一個縮略版本,完整的XML 文檔中包括兩個聯盟、六個分部、六個球隊和兩個球員的數據,以便于去理解元素
的位置所在和元素具有什么屬性。
清單10-4:完整的XML 文檔
<?xml version="1.0" standalone="yes"?>
<SEASON YEAR= "1998" >
<LEAGUE NAME= "Nation l League" >
<DIVISION NAME="East">
<TEAM CITY=" Atlant NAME=" Braves">
<PLAYER GIVEN_NAME=" Marty SURNAME=" Malloy"
POSITION=" Second Base" GAMES=" 11" GAMES_STARTED=" 8"
AT_BATS=" 28" RUNS=" 3" HITS=" 5" DOUBLES=" 1"
TRIPLES=" 0" HOME_RUNS=" 1" RBI=" 1" STEALS=" 0"
CAUGHT_STEALING=" 0" SACRIFICE_HITS=" 0 "
SACRIFICE_FLIES=" 0" ERRORS=" 0" WALKS=" 2"
STRUCK_OUT=" 2" HIT_BY_PITCH=" 0" />
<PLAYER GIVEN_NAME=" Tom" SURNAME=" Glavine"
POSITION=" Starting Pitcher" GAMES=" 33"
GAMES_STARTED=" 33" WINS=" 20" LOSSES=" 6" SAVES=" 0"
COMPLETE_GAMES=" 4 SHUTOUTS=" 3 ERA=" 2.47"
INNINGS=" 229.1" HOME_RUNS_AGAINST=" 13"
RUNS_AGAINST=" 67" EARNED_RUNS=" 63" HIT_BATTER=" 2"
WILD_PITCHES=" 3" BALK=" 0" WALKED_BATTER=" 74"
STRUCK_OUT_BATTER=" 157" />
XML 實用大全
第 311 頁
</TEAM>
</DIVISION>
<DIVISION NAME=" Central" >
<TEAM CITY=" Chicago NAME=" Cubs" >
</TEAM>
</DIVISION>
<DIVISION NAME=" West >
<TEAM CITY=" San Francisco" NAME=" Giants" >
</TEAM>
</DIVISION>
</LEAGUE>
<LEAGUE NAME=" American League" >
<DIVISION NAME=" East" >
<TEAM CITY=" New York NAME=" Yankees" >
</TEAM>
</DIVISION>
<DIVISION NAME=" Central" >
<TEAM CITY=" Minnesota" NAME=" Twins" >
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(90)