XML模式可以在单个complexType中有多个选项吗?

Jim*_*my 6 java xml schema xsd

是否可以在XML模式中执行此类操作?

<xsd:complexType name="ItemsType">
  <xsd:choice minOccurs="0" maxOccurs="unbounded">
    <xsd:element ref="shirt"/>
    <xsd:element ref="hat"/>
    <xsd:element ref="umbrella"/>
  </xsd:choice>
  <xsd:choice minOccurs="1" maxOccurs="3">
    <xsd:element ref="apple"/>
    <xsd:element ref="banana"/>
    <xsd:element ref="strawberry"/>
  </xsd:choice>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

这显然是无效的.我想要的是它可以有0或更多的第一选择.例如,可能有衬衫元素和帽子元素,或者根本没有衣服元素(因为minOccurs ="0"),所以通过至少1个水果元素(我想做它所以必须至少有一个,因为minOccurs ="1").

有办法吗?

谢谢你的帮助.

jas*_*sso 12

<xsd:complexType>期望只有一个子元素.将您的两个选择包装在一个单一的中<xsd:sequence>.

<xsd:complexType name="ItemsType">
  <xsd:sequence>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      ... clothes ...
    </xsd:choice>
    <xsd:choice minOccurs="1" maxOccurs="3">
      ... fruits ...
    </xsd:choice>
  </xsd:sequence>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)