如何解决XML模式限制可以选择的类型
我试图创建一个受限类型,其中基本类型在选择中包含一长串元素,而我的受限类型仅包含这些元素的子集:
<xs:complexType name="AD" mixed="true">
<xs:complexContent>
<xs:extension base="ANY">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="delimiter" type="adxp.delimiter"/>
<xs:element name="country" type="adxp.country"/>
<xs:element name="state" type="adxp.state"/>
<xs:element name="county" type="adxp.county"/>
<xs:element name="city" type="adxp.city"/>
<xs:element name="postalCode" type="adxp.postalCode"/>
<xs:element name="addressLine" type="adxp.addressLine"/>
<xs:element name="streetAddressLine" type="adxp.streetAddressLine"/>
<xs:element name="houseNumber" type="adxp.houseNumber"/>
</xs:choice>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Simple-AD">
<xs:complexContent>
<xs:restriction base="AD">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="country" type="adxp.country"/>
<xs:element name="state" type="adxp.state"/>
<xs:element name="city" type="adxp.city"/>
<xs:element name="postalCode" type="adxp.postalCode"/>
<xs:element name="streetAddressLine" type="adxp.streetAddressLine"/>
</xs:choice>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
这似乎是一件合理的事情,但是我收到了可怕的“禁止粒子限制:'choice:all,sequence,elt'”验证错误。根据我对Schema验证规则的阅读,似乎它应该验证(https://www.w3.org/TR/xmlschema-1/#rcase-RecurseLax),但不是。
是否不可能在模式类型限制中限制选择集?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。