XSD:What';这两者有什么区别?

XSD:What';这两者有什么区别?,xsd,Xsd,在第一个元素中,我将minOccurs和maxOccurs放在序列中元素: <xs:element name="Prerequisites" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="Prerequisite" type="Prerequisite

在第一个元素中,我将minOccurs和maxOccurs放在
序列中
元素:

<xs:element name="Prerequisites" minOccurs="0" maxOccurs="1">
  <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Prerequisite" type="PrerequisiteType"/>              
    </xs:sequence>
  </xs:complexType>
</xs:element>
  <xs:element name="Prerequisites" minOccurs="0" maxOccurs="1">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="Prerequisite" type="PrerequisiteType" minOccurs="0" maxOccurs="unbounded"/>              
        </xs:sequence>
      </xs:complexType>
  </xs:element>

在这种特殊情况下没有区别,即两种定义描述的语言相同


在第一个示例中,您定义的是整个序列出现的限制,在第二个示例中,仅限序列中的一个元素

最好不要在xs:sequence中使用minOccurs和maxOccurs。而且我认为可读性也更高。我也会避免在序列上使用minOccurs/maxOccurs,这可能会使处理复杂化。