当location
元素包含在locality
元素中时,我如何确保至少指定了wkt
个子元素(location
,<xs:element name="location" nillable="true" minOccurs="0">
<xs:complexType>
<xs:group ref="cs:locationGroup"></xs:group>
</xs:complexType>
</xs:element>
)中的一个元素XML?
locationGroup
<xs:group name="locationGroup">
<xs:all>
<xs:element name="locality" minOccurs="0"/>
<xs:element name="wkt" minOccurs="0"/>
</xs:all>
</xs:group>
的定义:
ContactsContract.CommonDataKinds.Phone.NUMBER
我的XSD版本是1.0。
答案 0 :(得分:1)
对于这么少的可能子元素,只需定义允许组合的xs:choice
:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="location">
<xs:complexType>
<xs:group ref="locationGroup"></xs:group>
</xs:complexType>
</xs:element>
<xs:group name="locationGroup">
<xs:choice>
<xs:sequence>
<xs:element name="locality"/>
<xs:element name="wkt" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element name="wkt"/>
<xs:element name="locality" minOccurs="0"/>
</xs:sequence>
</xs:choice>
</xs:group>
</xs:schema>
请注意这种方法
locality
或wkt
中的一个或两个出现按要求。