以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  [求助]再次召唤达人,还是关于数据类型的区别  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=31776)


--  作者:gemingke
--  发布时间:5/4/2006 10:43:00 PM

--  [求助]再次召唤达人,还是关于数据类型的区别
CDATA
PCDATA

两者有何区别,如何用?


--  作者:98900969r
--  发布时间:5/8/2006 4:44:00 PM

--  
译自 Mike Brown (http://lists.xml.org/archives/xml-dev/200109/msg00536.html)

(译者注:这是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标志并无任何关系。


[此贴子已经被作者于2006-5-8 18:10:26编辑过]

--  作者:gemingke
--  发布时间:5/8/2006 11:26:00 PM

--  
晕 ~~~慢慢研究
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms