XML dtd CDATA声明澄清

时间:2014-06-15 14:25:51

标签: xml xsd dtd

阅读后我发现使用DTD文档默认情况下无法设置包含CDATA的元素。在这种情况下,你能解释一下:

<!ELEMENT element-name (#CDATA)>

何时放入相关的DTD文档。我知道这可能是一个简单的问题,但我找不到答案。也有替代写作:

<element-name><![CDATA[Some unparsed data]></element-name>

使用XML架构?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

CDATA表示字符数据。它与CDATA Section不同。 元素的内容模型 不能包含(#CDATA),但是(#PCDATA),这意味着 Parsed 字符数据。将文本包含在 CDATA部分中将允许它在XML实例中保持未解析。

在您的DTD中,您必须使用:

<!ELEMENT element-name (#PCDATA)>

你可以在该元素中使用纯文本,转义特殊字符和CDATA部分。没有机制可以自动在元素中设置CDATA部分。

如果您正在生成或转换文档(使用XSLT),您可以在转换期间生成CDATA部分作为您生成的元素的内容。