Difference between PCDATA and CDATA

> #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 "

" 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.

Published At
Categories with Web编程
Tagged with
comments powered by Disqus