曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
述和建模,它們能夠支持傳統印刷目錄的所有功能。對于那些只能在I n t e r n e t上做到的電子商務
功能,這些將成為其實現的基礎。
你可以在h t t p : / / w w w. w 3 . o rg / X M L找到XML 1.0推薦標準( 和其他信息)。在
http://www.xml.com/axml/axml.html還有一個該標準的帶注釋的版本。
2.1 標記語法
X M L標記負責提供和描述一個X M L文件或數據包(也就是大家所熟知的X M L實體)的內容
結構。它們由界定內容的不同部分的標記( t a g)組成,
負責提供到特殊符號和文本宏的引用,或者將特殊指
令傳遞給應用軟件,以及把注釋傳遞給文檔編輯器。
相信你們對H T M L元素的標記已經很熟悉了(參
見圖2 - 1)。
X M L元素的結構與H T M L基本相同,X M L也同樣
使用尖括號來界定標記—以小于號( <)起始、大
于號(>)結尾。但二者的相同點也就僅此而已。
與H T M L不同,幾乎所有的X M L標記都是大小寫敏感的,其中包括元素的標記名和屬性
值;也就是說:
之所以大小寫敏感,主要是滿足X M L國際化的設計目標和簡化處理過程的需要。大多數非
英語語言并不把字母表分成若干種寫法,(即使是羅馬字符)許多字母可能也沒有對應的大寫或
小寫。例如,在法語中“ ç”就不一定是“ ç”(也可以是“C”)。希臘字母“西格馬”只有一個
大寫形式,但卻有兩個小寫形式;阿拉伯語則對每一個字母使用多種形式的寫法;等等。合并
寫法會存在許多缺陷,尤其是對于非A S C I I碼更是如此,而X M L的設計者們大多選擇避免這些
問題。
下面讓我們看一看X M L是如何滿足國際化的需要的。
2.1.1 字符
由于X M L是要在全球范圍內使用的,所以不能局限于7位的A S C I I碼字符集。X M L指定的字
標記
屬性
元素
內容標記
圖2-1
符均在1 6位的Unicode 2.1字符集(參見h t t p : / / w w w. u n i c o d e . o rg—它目前與ISO/IEC 10646是一
致的—參見h t t p : / / w w w. i s o . c h)中定義。這些都是相對較新的標準,而且當今世界還有許多文
字沒有編入統一碼當中。但是,由于它被設計為大多數現存字符編碼的超集,所以遺留的內容
向統一碼的轉換也是簡單直觀的。例如,把A S C I I碼轉換成統一碼只需要把1 6位字符的前8位填
充為0(而保留后8位)即可。
計算機字符史上還有一段關于連字符的小插曲(例如與從各類排版系統繼承而來的“ f i”或
“ff”字符組合),此外還有早期對日文處理的嘗試所采用的“半寬片假名”。雖然這些奇談怪論
都包含進了統一碼標準,但并不鼓勵大家使用—例如連字符就不是真正的字符,它們只是某
種形式的印刷樣式,能夠以最好的方式處理文本顯示,但并不嵌入到文本數據中。
訪問由Jukka Korpela制作的頁面h t t p : / / w w w. h u t . f i / u / j k o r p e l a / c h a r s . h t m l,可以看到關于字符
編碼問題的一個很好的介紹。
合法的X M L字符包括三個ASCII C0控制符,所有普通的A S C I I可顯示字符,以及所有其他
統一代碼字符值(用十六進制表示),可參見表2 - 1。
表2 - 1
字符值(十六進制) 描述
0 9 水平制表符( H T)
0 A 換行(L F)
0 D 回車(C R)
20 .. 7E A S C I I顯示字符
80 .. D7FF 統一代碼字符(包括“ L a t i n - 1”)
E000 .. F8FF “私有區域”
F900 .. FFFD C J K(中日韓)兼容的象形文字
10000 .. 10FFFF 待用集和“高度私有區域”
統一代碼中包含一個數量超過137 000的字符集合用于應用程序特定字符,它被稱作“保留
區域”。當然,使用這些私有字符進行任何X M L數據的交換都需要就這些字符的解釋單獨達成一
致,所以統一代碼的這個部分不應該在X M L數據對象中使用,因為它們需要在相當廣的范圍內
進行交換。
2.1.2 命名
在X M L中使用的結構幾乎總是被命名的。所有X M L命名都必需以字母、下劃線( _)或冒
號(:)開頭,后面跟著的是有效命名字符。有效命名字符除了前面的內容,還包括數字、連字
符(-)、句點(.)。在實際應用當中不應該使用冒號,除非是用作命名空間的分隔符(參見第7
章)。記住字母并非局限于A S C I I碼是非常重要的,因為不說英語的人們可以把自己的語言用在
標記當中。
X M L規范還定義了一種名叫命名令牌( name token,通常縮寫為n m t o k e n)的相關觀念,
它可以是命名字符的任意組合而沒有詞首字母的任何限制。除了它能夠使用在屬性值
第2章XML 語法使用21
下載
(后面將介紹)中這個問題,我們不想在本章過多地討論命名令牌,但是當我們在下一章
開始討論有效XML文檔時,它們就變得很重要了。
在命名方面另一個限制是它們不能由字符串“ x m l”、“X M L”或任何以此順序排列的這三
個字母的各類組合(例如“ x M L”或“X m l”)開頭。W 3 C保留對以這三個字母開頭的命名的使
用權。
下面就是一些合法的命名:
注意前兩個命名并不等同—這一點我們前面已經討論過, X M L的命名是大小寫敏感的。
第三個是使用建議的命名空間分隔符(冒號)的典型例子—在第7章你可以了解到關于命名空
間的更多信息。最后兩個例子提醒大家注意希臘語和法語同英語一樣,都可以用作X M L的命名。
下面是一些非法的命名:
頭兩個例子開頭使用的字母(“-”和“4”)雖然是合法的命名字符,但作為首字母卻是非法
的。第三個和第四個例子的字符根本就是非法字符(“$”和上標“ 2”)。最后兩個例子違反了
“x m l是保留字符”的限制(當然,如果它們是由W 3 C定義的則是另外一回事了)。在這種情況或
中國航空網 m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(10)