PCATA内的CDATA

时间:2014-06-22 08:04:39

标签: xml dtd cdata sgml pcdata

我读了这篇文章,并没有理解它:

  

PCDATA表示已解析的字符数据,因此在这种情况下,声明的元素现在允许在其中包含字符数据,您可能想知道是否有办法定义其中包含CDATA部分的元素,这是非解析。
答案是,记住,CDATA标签本身实际上已被解析。它只是CDATA部分内的文本内容未被解析。所以没有办法说,它只是一个CDATA部分。你要定义的是#PCDATA。然后,这表明元素可以在其中包含解析托架数据。

换句话说,怎么说呢? 是什么意思?
PCDATA - 解析字符数据
CDATA - (未分析)字符数据

PCDATA可以解析标签。所以PCDATA可以解析CDATA:PCDATA会理解CDATA。 CDATA保留内部文本。那就是CDATA将在PCDATA中运行。正确?

这个

  

所以没有办法说,它只是一个CDATA部分。你要定义的是#PCDATA。然后,这表明元素可以在其中包含解析托架数据。

杀了我我无法理解意义。

由于

1 个答案:

答案 0 :(得分:3)

我不是百分之百确定我在这里回答你的问题,因为我不能100%肯定你的问题是什么。

你应该记住的关于CDATA的第一件事是它只是一个作者工具,它使输入标记更容易导致该解析器出现问题。

例如,如果我想要一个para元素,其中包含“孩子< 12岁,成人> 80岁”的文字

<para>children &lt; 12 years and adults &gt; 80 years old</para>

那只是PCDATA。但打字有点乏味。所以我可能想做:

<para><![CDATA[children < 12 years and adults > 80 years old]]></para>

仍然是 PCDATA,但您已使用CDATA部分来避免有问题的文字。

所以,你引用的陈述是正确但不清楚的。对于元素内容,#PCDATA是数据类型,CDATA只是简化创作的惯例。 <{1}} ... <![CDATA 解析但内容未解析。