1

我有点困惑XSD schema。我需要覆盖复选框(即每个元素有多个值)。见下文:

[1]

<xsd:element name="Parent">
 <xsd:complexType>
  <xsd:sequence>
   <xsd:element maxOccurs="2" minOccurs="0" name="Children">
    <xsd:complexType>
     <xsd:sequence>
      <xsd:element name="Child" type="xsd:string">
      .
      .

这意味着我们可以拥有:

<parent>
 <children>
  <child />
 </children> 
 <children>
  <child />
 </children> 
</parent>

现在可以用 ? 定义和实现相同的功能<xsd:list>?像这样:

<xsd:element name="Parent">
 <xsd:complexType>
  <xsd:sequence>
   <xsd:element name="Children">    

    <xsd:simpleType>
     <xsd:list>
      <xsd:simpleType>
       <xsd:restriction base="xsd:string">    
        <xsd:enumeration value="Child 1"/>
        <xsd:enumeration value="Child 2"/>    
       </xsd:restriction>
      </xsd:simpleType>
     </xsd:list>
    </xsd:simpleType>

   </xsd:element>

所以,总的来说,我在xsd:list和之间有点困惑minOccurs/maxOccurs

4

1 回答 1

1

xsd:list元素定义了可能的值,而不是可能的子元素-您的第二个示例定义了一个元素,该元素Children具有以空格分隔的字符串列表作为有效内容,Child 1并且Child 2-即像这样的 XML:

<Parent>
   <Children>Child 1</Children>
 </Parent>

或者

<Parent>
   <Children>Child 2</Children>
 </Parent>

或者

<Parent>
   <Children>Child 1 Child 2</Children>
 </Parent>

另请注意,用 定义的列表中的值是用xsd:list空格分隔的,因此它们不应包含空格。

于 2013-09-04T14:15:54.610 回答