"任何数量的这些元素-任意顺序"的XML Schema构造

时间:2020-03-05 18:44:16  来源:igfitidea点击:

我需要创建一个看起来像这样的XML模式:

<xs:element name="wrapperElement">
<xs:complexType>
    <xs:sequence>
        <xs:element type="el1">
        <xs:element type="el2">
    </xs:sequence>

    <xs:WhatGoesHere?>
        <xs:element type="el3"> 
        <xs:element type="el4">
        <xs:element type="el5">
    </xs:WhatGoesHere?>

    <xs:sequence>
        <xs:element type="el6">
        <xs:element type="el7">
    </xs:sequence>
</xs:complexType>
</xs:element>

我需要的是替换" WhatGoesHere",以便可以按任意顺序出现任意数量的el3,el4和el5. 例如,它可以包含{el3,el3,el5,el3}

关于如何解决这个问题的任何想法?

解决方案

回答

我们想要具有出现限制的xs:choice

<xs:element name="wrapperElement">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="e11"/>
      <xs:element name="el2"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="el3"/>
        <xs:element name="el4"/>
        <xs:element name="el5"/>
      </xs:choice>
      <xs:element name="el6"/>
      <xs:element name="el7"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>