XSD:元素的内容无关紧要

时间:2014-06-03 08:07:06

标签: xml xsd

我在XSD架构中遇到以下问题。 我有一个XML,其中找到了一个数据元素。该数据元素的内容可以变化 取决于发生的不同变换。所以我真的不能在其上放置一个模式。

我只想忽略数据元素中的所有内容,让它只是传递架构而不会出错。

我的XML:

<root>
    <element1>12345</element1>
    <element2>abcde</element2>
    <data>
        <lots></lots>
        <of></of>
        <content></content>
    </data>
</root>

在我的XSD中,我执行以下操作:

<xs:element name="data">
    <xs:complexType>
       <xs:sequence>
          <xs:any processContents="skip" minOccurs="0" />
       </xs:sequence>
     </xs:complexType>
</xs:element>

我想过使用processContents跳过这个问题,但不知何故,这不起作用。 有人知道为什么它不起作用,或者手头有更好的解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

它应该工作。您的示例中的问题是<data>中只允许一个元素,因为您没有声明maxOccurs而默认值是一个。如果将其更改为

<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>

它应该验证。

请参阅 fiddle