曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
6.2.3 CDATA
XML 實用大全
第 135 頁
大多數情況下,出現在一對尖括號(<>)中的是置標,不在尖括號中的是字符數據。但是有一種情況例外,在CDATA 段中所
有文本都是純字符數據。看起來與標記或者實體相似的僅僅是它們各自相應的文本。XML 處理器無論如何是不會解釋它們的。
CDATA 段用于需要把整個文本解釋為純字符數據而并不是置標的情況。當有一個包含許多<、>、&或"字符而非置標的龐大文
本時,這是非常有用的。對于大部分C 和Java 源代碼,正是這種情況。
如果想使用XML 寫有關XML 的簡介,CDATA 段同樣非常有效。例如,在本書中包含許多小的XML 代碼塊,而我正在使用的字
處理器又不能顧及這些情況。但是如果把本書轉換為XML,我將不得不很辛苦地用<代替全部小于號,&代替所有
“和”字符。如下所示:
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
</GREETING>
為了避免這種麻煩,可以使用一個CDATA 段表示一個不需翻譯的文本塊。CDATA 段以<![CDATA[ 開始并以 ]]>結束,例如:
<![CDATA[
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
</GREETING>
]]>
唯一不許出現在CDATA 段中的文本是CDATA 的結束界定符]]>。注釋可能會出現在CDATA 段中,但不再扮演注釋的角色。也
就是說兩個注釋標記和包含在它們之間的全部文本都將顯示出來。
因為]]>不能出現在CDATA 段中,所以CDATA 段不能嵌套。這使得使用XML 寫有關的CDATA 段相對困難些。如果
需要的話,必須去掉項目符號,并使用<、&和實體引用。
CDATA 段不常需要,一旦需要時,它是非常有用的。
6.2.4 標記
置標能夠區分XML 文件與無格式文本文件。置標的最大部分是標記。前一章講雋吮曇塹氖褂梅椒ǎ 窘誚 ㄒ灞曇遣⑻峁┦
褂梅椒ā?/p>
XML 實用大全
第 136 頁
簡而言之,標記在XML 文檔中以<開始,以>結束,而且不包含在注釋或者CDATA 段中。因此,XML 標記有與HTML 標記相同
的形式。開始或打開標記以<開始,后面跟有標記名。終止或結束標記以</開始,后面也跟標記名。遇到的第一個>該標記結
束。
6.2.4.1 標記名
每個標記都有一個名稱。標記名必須以字母或下劃線(_)開始,名稱中后續字符可以包含字母、數字、下劃線、連字符和
句號。其中不能含有空格(經常用下劃線替代空格)。下面是一些合法的XML 標記:
<HELP>
<Book>
<volume>
<heading1>
<section.paragraph>
<Mary_Smith>
<_8ball>
冒號出現在標記名中從語法上講是合法的,但是它們被保留用于命名域。命名域可以混合和匹配可能使用同名標
記的標記集合。命名域將在第18 章討論。
以下是句法不正確的XML 標記:
<Book%7>
<volume control>
<1heading>
<Mary Smith>
<.employee.salary>
事實上標記名的規則也適用于其他許多名稱,如屬性名、ID 屬性值、實體名和其他一些將在后面幾章遇到的結構。
結束標記與起始標記同名,只是在起始尖括號后加了一個/。例如,如果起始標記是<FOO>,那么結束標記是</FOO>。下面是
前面所提到的合法起始標記所對應的結束標記:
</HELP>
XML 實用大全
第 137 頁
</Book>
</volume>
</heading1>
</section.paragraph>
</Mary_Smith>
</_8ball>
XML 名稱是大小寫敏感的。在HTML 中的<P>和<p>是同一個標記,</p>可以結束一個<P>標記,但在XML 中卻不行。下面所示
的并不是我們討論過的合法起始標記所對應的結束標記:
</help>
</book>
</Volume>
</HEADING1>
</Section.Paragraph>
</MARY_SMITH>
</_8BALL>
盡管大小寫字母均可以用在XML 的標記中,從此觀點出發,我會盡可能遵循使用大寫的約定。這主要是因為大寫在本書中可
以更突出,但是有時使用的標記集是別人建立的,那么采用別人的習慣約定是必要的。
6.2.4.2 空標記
許多不含數據的HTML 標記沒有結束標記。例如,在HTML 中沒有</LI>、</IMG>、</HR>或</BR>標記。一些頁面作者在所列
的項目后面確實會包含</LI>標記,一些HTML 工具也使用</LI>標記。但是HTML 4.0 標準特別否認了這一點的必要性。同
HTML 中所有沒有被公認的標記一樣,一個不必要的</LI>的出現對交付的輸出沒有任何影響。
這在XML 中不是問題。XML 的總體觀點就是在分析文檔時允許發現新的標記。因此沒有識別的標記就不會被簡單地忽略。而
且XML 處理器一定能夠判明以前從沒出現過的一個標記有沒有結束標記。
XML 區分帶有結束標記的標記,而不帶結束標記的標記稱為空標記。空標記以斜杠和一個結束尖括號(/>)結束。例如,<BR/>
或<HR/>。
目前的Web 瀏覽器處理這種標記的方法不一致,如果希望保持向后的兼容性,可以用結束標記來代替,只要在兩個標記之間
不包含任何文本。例如:
<BR></BR>
XML 實用大全
第 138 頁
<HR></HR>
<IMG></IMG>
在學了后續幾章中的DTD 和樣式單后,將會看到在必須由傳統瀏覽器分析的文檔中使用HTML 可以有多種方法保持向前和向
后的兼容性。
6.2.5 屬性
在前面的章節中討論過,起始標記和空標記可以隨意地包含屬性。屬性是用等號(=)分隔開的名稱-數值對。例如:
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(43)