我必须使用XML Schema验证包含嵌入式XML的XML文件。内部XML的正确性对我不感兴趣。对于此类内容,我应该在XML Schema中使用哪种类型?简单的xs:string
不起作用。
答案 0 :(得分:1)
您可以使用多种方法在其他XML文档中嵌入XML。
<强> xs:any:
强>
您可以在架构中使用xs:any
类型(link)。但是,您需要包含嵌入式XML的架构(将用于验证它)。
或者,如果您将内部XML嵌入xs:string
部分或者转义所有CDATA
和<
个字符,则&
可以正常工作。
CDATA
部分:
<InnerXml>
<![CDATA[
<InnerXmlRoot>
<InnerXmlContent>One & Two</InnerXmlContent>
</InnerXmlRoot>
]]>
</InnerXml>
这种方法唯一需要注意的是内部XML不能包含CDATA
部分,因为允许的内容不能包含]]>
(参见XML specification)。< / p>
字符转义:
<InnerXml>
<InnerXmlRoot>
<InnerXmlContent>One & Two</InnerXmlContent>
</InnerXmlRoot>
</InnerXml>