曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
語文本。
國際化字符集將在第7 章“外語和非羅馬文本”中討論。
一個XML 文檔的文本可有兩種用途,字符數據和置標。字符數據是文檔的基本信息。另一方面,置標主要描述一個文檔的邏
輯結構。例如,回想一下第三章清單3-2 中的greeting.xml:
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
</GREETING>
其中<?xml version="1.0" standalone="yes"?>,<GREETING>和</GREETING>是置標。Hello XML!是字符數據。XML 比其他格
式優越的一點是它把實際數據與置標明顯地分隔開。
更確切地說,置標包括所有的注釋、字符引用、實體引用、CDATA 段定界符、標記、處理指令和DTD。其他的就是字符數據。
但是文檔被處理后,一些置標會變成字符數據。例如,置標>;變成了大于號(>)。文檔經處理后留下的字符數據和所有
的代表特定字符的數據稱為可分析的字符數據。
6.2.1 注釋
XML 的注釋與HTML 的注釋很相似,它們以<!--開始,以-->結束。介于<!--和-->之間的全部數據均被XML 處理器忽略,就
像它們根本不存在一樣。注釋用于提醒自己或臨時標注出文檔中不完善的部分。例如:
<?xml version="1.0" standalone="yes"?>
<!--This is Listing 3-2 from The XML Bible-—>
<GREETING>
Hello XML!
<!--Goodbye XML-->
</GREETING>
在使用注釋時必須遵循以下幾條規則,大致如下:
XML 實用大全
第 132 頁
1. 注釋不能出現在XML 聲明之前,XML 聲明必須是文檔最前面的部分。例如,下面這種情況是不允許的:
<!--This is Listing 3-2 from The XML Bible-->
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
<!--Goodbye XML-->
</GREETING>
2. 注釋不能放在標記中,例如:下面這種情況是非法的:
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
</GREETING <!--Goodbye--> >
3. 注釋可以包圍和隱藏標記。在下面例子中,<antigreeting>標記及其內容被當作注釋;而且文檔在瀏覽器中顯示時不會
出現,好像不存在一樣:
<?xml version="1.0" standalone="yes"?>
<DOCUMENT>
<GREETING>
Hello XML!
</GREETING>
<!--
<ANTIGREETING>
Goodbye XML!
</ANTIGREETING>
-->
</DOCUMENT>
XML 實用大全
第 133 頁
由于注釋有效地刪除了文本的一些部分,必須保證剩余的文本仍然是一個結構完整的XML 文檔。例如,在沒有注釋掉相應的
結束標記前千萬不要注釋掉起始標記。例如,下面的語句是非法的:
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
<!--
</GREETING>
-->
一旦刪除注釋文本,剩余的是:
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
因為<GREETING>標記沒有與之匹配的結束標記</GREETING>,這已經不再是一個結構完整的XML 文檔。
4. 兩個連字符號(--)除了作為注釋起始和結束標記的一部分外,不能出現在該注釋中。例如,下面的是非法注釋:
<!--The red door--that is,the second one--was left open-->
這意味著不能像下面的語句這樣嵌套注釋:
<?xml version="1.0" standalone="yes"?>
<DOCUMENT>
<GREETING>
Hello XML!
</GREETING>
<!--
<ANTIGREETING>
<!--Goodbye XML!-->
</ANTIGREETING>
XML 實用大全
第 134 頁
-->
</DOCUMENT>
這也意味著如果注釋掉帶有表達式如i--或numberLeft--的C、Java 或者JavaScript 源代碼時就會出現問題。通常只要意
識到這個問題就不難解決。
6.2.2 實體引用
實體引用是指分析文檔時會被字符數據取代的置標。XML 預先定義了5 個實體引用,列在表6-1 中。實體引用用于XML 文檔
中的特殊字符,否則這些字符將被解釋為置標的組成部分。例如,實體引用<;代表小于號(<),否則會被解釋為一個標
記的起始部分。
表6-1 XML 預定義的實體引用
實體引用 字 符
& &
< <
> >
" "
'
XML 中的實體引用與HTML 中不同,必須以一個分號結束。因此>是正確的實體引用寫法,> 是不正確的。
未經處理的小于號(<)同表示“和”的符號(&)在一般的XML 文本中往往被分別解釋為起始標記和實體引用(特殊文本是
指CDATA 段,將在后面討論)。因此,小于號同“和”號必須分別編碼為<和&。例如,短語“Ben & Jerry s New York
Super Fudge Chunk Ice Cream”應當寫成Ben &Jerry s New York Super Fudge Chunk Ice Cream 。
大于號、雙引號和撇號在它們可能會被解釋成為置標的一部分時也必須編碼。但是,養成全部編碼的習慣要比努力推測一個
特定的應用是否會被解釋為置標容易得多。
實體引用也能用于屬性值中。例如:
<PARAM NAME="joke" VALUE="The diner said,
"e;Waiter,There's a fly in my soup!"e;">
</PARAM>
中國航空網 m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(42)