xml元素类型PCDATA和CDATA的区别DTD中

w3school的定义:

PCDATA

PCDATA 的意思是被解析的字符数据(parsed character data)。

可把字符数据想象为 XML 元素的开始标签与结束标签间的文本。

PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记

文本中的标签会被当作标记来处理,而实体会被展开。

不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们。

CDATA

CDATA 的意思是字符数据(character data)。

CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。


PCDATA是将会被解析的文本,而CDATA是不会被解析的文本。

所以
(1)DTD中元素的类型常定义为PCDATA,因为元素内可能还包含子元素等内容,需要xml解析器对>,<,&,',"几个特殊字符进行解析。另外 PCDATA中的实体会被展开,所以PCDATA常作为xml结构的一部分 (子元素)。如果想在PCDATA中包含 >,"这些特殊字符就要使用实体(实体和实体引用的解析在最后)。
(2)属性的类型常定义为CDATA(不能为PCDATA),表示这部分内容不需要xml解析,实体也不会被展开(个人觉得说成实体引用不会被展开更好?)。因此xml中需要添加一段代码时可以将其类型指定为CDATA,这就相当于告诉xml解析器这一段内容不是给你看的(是给javascript引擎看的!)。



实体

XML 结构构造。文件数据库记录或包含数据的其他项。实体的主要用途是存放内容 — 而不是存放结构、规则或语法。每个实体通过唯一名称标识,包含其自己的内容,从文档中的单个字符到文档之外的大文件XML 实体的功能与宏定义类似。

实体可以通过实体引用进行引用,将实体的内容插入树中的相应位置。实体声明出现在 DTD 中。


实体引用

XML 结构构造。充当内容作者的占位符,XML 分析器将实际内容放在每个引用站点要加入实体引用,先插入“and”符 (&),然后输入实体名称,后接分号 (;),如下所示:&YourEntityName;。然后,在处理该行时,实体将替换为实体的内容用法与宏基本相同。



实体展开 实体展开是指由实体应用获得实体的过程,如展开后为一个空格。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇