XSD架构 - 一个或两个

时间:2012-03-25 19:00:45

标签: xsd schema element xsd-validation

我可以做出选择方案,例如(A或B或两者)。如果是,如何使用以下元素完成?

<xs:element name="a" type="typeA"  />
<xs:element name="b" type="typeB" />

希望你能提供帮助。

此致 尼马

1 个答案:

答案 0 :(得分:3)

您可以看到XSD "one or both" choice construct leads to ambiguous content model

<xs:schema xmlns:xs="...">
  <xs:element name="a" type="typeA"  />
  <xs:element name="b" type="typeB" />
  <xs:element name="...">
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
          <xs:sequence>
            <xs:element ref="a"/>
            <xs:element ref="b" minOccurs="0"/>
          </xs:sequence>
          <xs:element ref="b"/>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>