CDATA
CDATA,意為character data,是標記語言SGML與XML,表示文檔的特定部分是普通的字符數據,而不是非字符數據或有特定、限定結構的字符數據。
XML中CDATA
在XML文檔或外部實體中,一個CDATA section是一段按字面解釋的內容,不作為標記文本。字符用CDATA節表示或者按照標準語法表示,並無差異。例如"<
" 與 "&
" 分別表示 "<
" 與 "&
"。
語法與解釋
一個CDATA節以下述序列開始:
<![CDATA[
並以下述序列結束:
]]>
被包圍在上述兩個序列之間的所有內容被解釋為字符,而不當作標記(markup)或實體引用。每個字符都按字面解釋,除了序列]]>
。
在下例中:
<sender>John Smith</sender>
開始與結束的"sender"標籤被解釋為標記。如果寫成:
<![CDATA[<sender>John Smith</sender>]]>
則等價於寫為:
<sender>John Smith</sender>
也就是說,"標籤"與"John Smith"具有相同狀態—都被當作了文本。
類似地,如果字符值引用 ð
在元素內容中出現,將被解釋為單個Unicode字符00F0 (小寫字符Ð)。如果出現在CDATA節中,將被解釋為6個字符:&、井號符、2、4、0、分號。
CDATA節不能嵌套。如果文本中需要包含3字符序列"]]>
",可以用兩個相鄰的CDATA節表示它,如下例:
<![CDATA[]]]]><![CDATA[>]]>
xml聲明<?xml ...?>
中指定的字符編碼集之外的Unicode字符,可以用諸如&#nnn;
的字符值引用表示。但CDATA節中的文本,只能限於上述編碼集中的字符。因此,CDATA節應該用來表示手工輸入的文本,其可讀性較好;對於程序自動生成的XML,應該避免使用CDATA。