2 種類のアドレスがあり、どちらも存在する必要があり、両方とも親にネストされています。すべてのフィールドを 2 回再定義せずに、各アドレス タイプの 1 つを強制する方法はありますか?
<xs:element name="addresses">
<xs:complexType>
<xs:sequence>
<xs:element name="address" maxOccurs="2" minOccurs="2"> <!-- MUST BE ONE OF EACH ADDRESS TYPE - Invoice AND Delivery -->
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="addresstype">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="I"/>
<xs:enumeration value="D"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element type="xs:string" name="addresscode"/>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="line1"/>
<xs:element type="xs:string" name="line2"/>
<xs:element type="xs:string" name="line3"/>
<xs:element type="xs:string" name="line4"/>
<xs:element type="xs:string" name="line5"/>
<xs:element type="xs:string" name="postcode"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>