0

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>
4

1 に答える 1

0

この要件は、XSD では実現できません。すべてのフィールドを 2 回定義しても、それは不可能だと思います。親を 2 回定義しようとすると<address>、「要素には (複合型または単純型の) 型を 1 つしか持てません」というエラーが表示されるのではないでしょうか。

于 2012-11-29T14:14:12.407 に答える