我在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跳过这个问题,但不知何故,这不起作用。 有人知道为什么它不起作用,或者手头有更好的解决方案吗?
谢谢!
答案 0 :(得分:2)
它应该工作。您的示例中的问题是<data>
中只允许一个元素,因为您没有声明maxOccurs
而默认值是一个。如果将其更改为
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
它应该验证。
请参阅 fiddle 。