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