Difference between PCDATA and CDATA

来源:互联网 发布:自贸区政策 知乎 编辑:程序博客网 时间:2024/04/28 10:23
> #PCDATA [...] specifies that an element will contain parsed
> character data. Parsing tests whether the characters conform to the
> lexical constraints imposed by XML 1.0.
>
> CDATA appears in attribute declarations and specifies that an
> attribute will contain character data that is not parsed.

That's not accurate. All characters in an XML document are "parsed" in
the sense that you describe.

"CDATA" is a token used in an attribute declaration to declare the
attribute as having a string type. '&', and '<' and the quote character
used for delimiting the attribute value have special meaning in
attributes of this type.

"#PCDATA" is a token used in an element declaration to declare the
element as having mixed content (character data, or character data mixed
with other elements). The content of the element is parsed; '&' and '<'
have special meaning and must be escaped if they aren't the start of
markup.

A "CDATA section", bounded in markup by "<![CDATA[" and "]]>" is, by
comparison, "unparsed" character data (though even it is subject to at
least one restriction -- it can't contain "]]>"). A CDATA section can
only appear in element content, and it has nothing to do with the
"CDATA" token used in attribute decls.
原创粉丝点击