XML中 CDATA and PCDATA 的区别

本文澄清了关于CDATA和PCDATA的常见误解,并解释了这两种数据类型在XML文档中的作用及区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值