曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
<GREETING LANGUAGE="English">
Hello XML!
<MOVIE SRC="WavingHand.mov"/>
</GREETING>
在此<GREETING>標記有一個LANGUAGE 屬性,其屬性值是English。<MOVIE>標記有一個SRC 屬性,其屬性值為WavingHand.mov。
6.2.5.1 屬性名
屬性名是字符串,遵循與標記名同樣的規則。這就是,屬性名必須以字母或下劃線(_)開始,名稱中后續字符可以包含字
母、數字、下劃線、連字符和句號。其中不能含有空格(經常用下劃線替代空格)。
同一個標記不能有兩個同名的屬性。例如,下面的例子是不合法的:
<RECTANGLE SIDE="8cm" SIDE="10cm"/>
屬性名是區分大小寫的。SIDE 屬性與side 或者Side 屬性不是同一個屬性,因此以下例子是合法的:
<BOX SIDE="8cm" side="10cm" Side="31cm"/>
但是上面的這種寫法很迷惑人,最好不要這樣書寫。
6.2.5.2 屬性值
屬性值也是字符串。如下面所示的LENGTH 屬性,即使字符串表示的是一個數,但還是兩個字符7 和2,不是十進制數的72。
<RULE LENGTH="72"/>
如果編寫處理XML 的代碼,在對字符串執行算術運算之前必須把它們轉換為一個數。
與屬性名不同,對屬性值包含的內容沒有任何限制。屬性值可以包含空格,可以以一個數字或任何標點符號(有時單括號和
雙括號除外)開頭。
XML 實用大全
第 139 頁
XML 屬性值由引號界定。與HTML 屬性不同,XML 屬性值必須加引號。大多數情況下是使用雙引號,但是如果屬性值本身含有
一個引號,就需要使用單引號。例如:
<RECTANGLE LENGTH= 7" WIDTH= 8.5" />
如果屬性值中含有兩種引號,那么其中不用于界定字符串的一個必須用合適的實體引用代替。我通常替換兩個,這種方法很
管用。例如:
<RECTANGLE LENGTH= 8'7" WIDTH="10'6""/>
XML 實用大全
第 140 頁
6.3 獨立文檔中結構完整的XML
盡管可以根據需要編寫標記,XML 文檔為了保持結構完整必須遵循一定的規則。如果一個文檔不是結構完整的,大部分讀取
和顯示操作都會失敗。
事實上,XML 規范嚴格禁止XML 句法分析器分析和解釋結構欠妥的文檔。正在執行操作的分析器唯一能做的是報告出錯。它
不會修改錯誤,不會作最大的努力顯示作者想要的東西,也不會忽略不當的結構欠妥的標記。它所能做的是報告錯誤和退出。
這樣做的目的是為了避免對錯誤的兼容性的競爭。這種競爭已使得編寫HTML 語法分析程序和顯示程序變得非常困難。因為
Web 瀏覽器承認畸形的HTML,而Web 頁面設計者不會特別盡力確保他們的HTML 正確無誤。事實上,他們甚至利用個別瀏覽
器中的錯誤達到特殊的效果。為了正確顯示被大量安裝的HTML 頁面,每個新的Web 瀏覽器必須支持已有的Web 瀏覽器的每
一個細微差別和各自的屬性。用戶將放棄任何一種嚴格執行HTML 標準的瀏覽器。正是為了避免這種遺憾,XML 處理器才只
接受結構完整的XML。
為了使一個文檔結構完整,XML 文檔中的所有置標和字符數據必須遵守前幾節中給出的規則。而且有幾條關于如何把置標和
字符數據相互聯系起來的規則。這些規則總結如下:
1.文檔的開始必須是XML 聲明。
2.含有數據的元素必須有起始標記和結束標記。
3.不含數據并且僅使用一個標記的元素必須以/>結束。
4.文檔只能包含一個能夠包含全部其他元素的元素。
5.元素只能嵌套不能重疊。
6.屬性值必須加引號。
7.字符<和&只能用于起始標記和實體引用。
8.出現的實體引用只有&、<、>、'和"。
這八條規則稍加調整就能適用于含有一個DTD 的文檔,而且對于定義文檔與它的DTD 之間關系的完整性有另外的規則。我們
將在后面幾章中介紹,F在請仔細看這些用于沒有DTD 文檔的規則。
DTD 將在本書第二部分中討論。
#1:文檔必須以XML 聲明開始
下面是XML 1.0 中獨立文檔的XML 聲明:
<?xml version="1.0" standalone="yes"?>
如果聲明出現,它絕對是該文件最開頭部分,因為XML 處理器會讀取文件最先的幾個字節并將它與字符串<?XML 的不同編碼
作比較來確定正在使用的字符串集(UTF-8、大頭(高字節先傳格式)或者小頭(低字節先傳格式))。除去看不見的字節
XML 實用大全
第 141 頁
順序記號,在它之前不能有任何東西,包括空格。例如,下面一行用于XML 的開始是不能接受的,因為在該行的前面有多余
的空白。
<?xml version="1.0" standalone="yes"?>
UTF-8 和Unicode 的變種在第7 章“外語和非羅馬文本”中討論。
XML 確實允許完全省略XML 聲明。通常不推薦這樣做,但這樣做有特殊的用途。例如,省略XML 聲明,通過連接其他結構完
整的XML 文檔有助于重新建立一個結構完整的XML 文檔。這種方法將在第9 章討論。而且,本章后面將要講述的一種樣式能
夠編寫結構完整的HTML 文檔。
#2:在非空標記中使用起始和結束標記
如果忘了結束HTML 的標記,Web 瀏覽器并不嚴格追究。例如,如果文檔包含一個<B>標記卻沒有相應的</B>標記,在<B>標
記之后的全部文檔將變為粗體。但文檔仍然能顯示。
XML 不會如此寬松,每個起始標記必須以相應的結束標記結束。如果一個文檔未能結束一個標記,瀏覽器或移交器將報告一
個錯誤信息,并且不會以任何形式顯示任何文檔的內容。
#3:用“/>”結束空標記
不包含數據的標記,例如HTML 的<BR>、<HR>和<IMG>,不需要結束標記。但是XML 空標記必須由/>結束,而不是>。例如<BR>、
<HR>和<IMG>的XML 等價物是<BR/>、<HR/>和<IMG/>。
中國航空網 m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(44)