XML dtd CDATA声明澄清



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

<!ELEMENT element-name (#CDATA)>

放在相关DTD文档中时执行。我知道这可能是一个简单的问题,但我找不到答案。还有,是否有一种替代方法可以这样写:

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

使用XML模式?

感谢您的宝贵时间。

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

在您的DTD中必须使用:

<!ELEMENT element-name (#PCDATA)>

元素中可以有纯文本、转义的特殊字符和CDATA节。没有机制可以自动在元素中设置CDATA节。

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

最新更新