xml元素类型PCDATA和CDATA的区别(DTD中)
w3school的定义:
PCDATAPCDATA 的意思是被解析的字符数据(parsed character data)。 可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。 PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。 文本中的标签会被当作标记来处理,而实体会被展开。 不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们。 CDATACDATA 的意思是字符数据(character data)。 CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。
PCDATA是将会被解析的文本,而CDATA是不会被解析的文本。
所以
(1)DTD中元素的类型常定义为PCDATA,因为元素内可能还包含子元素等内容,需要xml解析器对>,<,&,',"几个特殊字符进行解析。另外
PCDATA中的实体会被展开,所以PCDATA常作为xml结构的一部分
(子元素)。如果想在PCDATA中包含
>,"这些特殊字符就要使用实体(实体和实体引用的解析在最后)。
(2)属性的类型常定义为CDATA(不能为PCDATA),表示这部分内容不需要xml解析,实体也不会被展开(个人觉得说成实体引用不会被展开更好?)。因此xml中需要添加一段代码时可以将其类型指定为CDATA,这就相当于告诉xml解析器这一段内容不是给你看的(是给javascript引擎看的!)。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |