阅读后,我发现不能使用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节作为您正在生成的元素的内容。