在XMLSchema中定义嵌入式XML

时间:2011-12-16 13:02:38

标签: xml xsd

我必须使用XML Schema验证包含嵌入式XML的XML文件。内部XML的正确性对我不感兴趣。对于此类内容,我应该在XML Schema中使用哪种类型?简单的xs:string不起作用。

1 个答案:

答案 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>
  &lt;InnerXmlRoot>
    &lt;InnerXmlContent>One &amp; Two&lt;/InnerXmlContent>
  &lt;/InnerXmlRoot>
</InnerXml>