我想定义一个包含可能存在或不存在的元素的复杂类型,并且还允许其他未定义的元素,所以我有这样的东西:
<xs:complexType name="MyType">
<xs:sequence>
<xs:element name="A" type="xs:float" minOccurs="0" maxOccurs="1" />
<xs:element name="B" type="xs:float" minOccurs="0" maxOccurs="1" />
<xs:element name="C" type="xs:float" minOccurs="0" maxOccurs="1" />
<xs:any minOccurs="0" processContents="skip"/>
</xs:sequence>
</xs:complexType>
我不想使用<xs:sequence>
强制执行订单,因此我想将<xs:sequence>
更改为<xs:all>
,但不允许<xs:any>
。有没有办法实现这个目标?
答案 0 :(得分:0)
要允许任何订单,请使用:
<xs:complexType name="MyType">
<xs:all minOccurs="1" maxOccurs="1">
<xs:element name="A" type="xs:float" minOccurs="0" maxOccurs="1" />
<xs:element name="B" type="xs:float" minOccurs="0" maxOccurs="1" />
<xs:element name="C" type="xs:float" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
但是,你<any>
内不能有<all>
你也不能将它们放在一种类型中,无论是直接还是作为扩展。