我有架构我想要任何一个元素是强制性的,它们不应该重复。
EDITED - 此处有效请求可以包含请求中的查询和id,或者只有查询或id元素也有效。 e.g:
<soapenv:Body>
<ws:SomeOperation>
<SoapOperation>
<query>test</query>
<id>1</id>
</SoapOperation>
</ws:SomeOperation>
</soapenv:Body>
有效请求:
无效请求:
我希望查询或ID必须存在。其中一个是强制性的。 我试过以下的事情:
<xs:sequence>
<xs:element minOccurs="0" name="id">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="query">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
这里的问题是它们都不是强制性的,并且使任何一个作为minoccurs = 1将使该字段成为必需的(例如,如果我将id标记为minoccurs = 1,那么id字段是必需的,但我的有效请求只能有查询而不是id)并且也可能存在两个标签。
我也尝试过选择标签。
使用简单的选择将使这些标签重复,这也是我不想要的。标签不应重复。