CDATA 與 PCDATA區別

CDATA是xml裏的東西,用在這裏的目的是爲了讓xhtml校驗通過,因爲在xml中,CDATA裏的內容是“文本”,不需要轉義,可以存在<>&等在xml中不允許出現的符號。

該文章轉載自腳本之家:http://www.jb51.net/html/200705/23/9888.htm

(譯者注:這是Mike Brown在[xml-dev]郵件討論區中針對Michael Fitzgerald關於CDATA和PCDATA的關係的一種不確切的說法給與的迴應。Michael Fitzgerald的說法是一種具有普遍性的誤解,而Mike Brown予以了澄清,之後Michael Fitzgerald表示Mike Borwn的解釋更好。)

>Michael Fitzgerald寫道:
>#PCDATA指明元素可容納被解析(parsed)字符數據。解析(parsing)將測試字符串是否遵循>XML1.0所規定的詞法約束。
>
>CDATA出現在屬性聲明中,它指明屬性可容納不被解析(unparsed)字符數據。

這樣的說法不確切。按照你對於“解析”一詞的解釋,XML文檔中所有的字符都是要被解析的。

CDATA標誌在屬性聲明中用於指明屬性爲CDATA字符類型,這種類型中&,<,和引號具有特殊意義。

PCDATA標誌在元素聲明中用於指明元素有混合內容(字符數據或者字符數據與子元素的混合)。元素內容將被解析。這種類型中&和<具有特殊意義,如果不是作爲標記開始,則使用時要轉義。

一個被"<![CDATA[" and "]]>"括起來的CDATA節,是不將被解析的字符數據節,這與CDATA和PCDATA這兩種被解析的字符數據形成對照。CDATA節只能出現在元素內容中,它與屬性聲明中的CDATA標誌並無任何關係。 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1802239

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章