XML DTD中的PCDATA与CDATA

nik*_*kel 6 xml sgml dtd cdata pcdata

在XML DTD中 - 在定义元素时,我们使用#PCDATA来表示该元素可以包含任何可解析的文本.在定义属性时,我们使用CDATA来表示其值可以是任何字符数据.

XML中使用的CDATA是XML解析器未解析的(多字符转义序列).一致地,当我们使用CDATA定义属性时; 解析器不应该解析它.但是,确实如此!

那么,为什么不能使用PCDATA代替CDATA来定义属性?

更新 - 这一直保持与SGML向后兼容.SGML中这种命名背后的原因是什么?

Dan*_*ley 0

CDATA部分(就像您在元素中使用的那样)与CDATA 属性类型不同。

您最有可能观察到的解析(例如正在解析的实体引用)来自属性值规范化