0

我有两种类型的地址,它们都需要存在并且都嵌套在父级中。有没有一种方法可以强制每种地址类型中的一种,而无需重新定义所有字段两次?

 <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 实现的!我认为即使定义所有字段两次也不可能!因为如果你尝试定义 parent<address>两次,我猜它最终会显示错误,“一个元素只能有一个(复杂或简单)类型”!

于 2012-11-29T14:14:12.407 回答