2011-08-24 64 views
0

在第一个,我把minOccurs和maxOccurs的在sequence元件:XSD:这两者有什么区别?

<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> 

在第二个,我把它放在含有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> 

回答

0

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

你在第一个例子中定义的是整个序列发生的限制,仅在序列的一个元素的第二种情况下。

+0

这两种方法之间更“可读”吗? – Ian

+1

最好不要在xs:sequence中使用minOccurs和maxOccurs。我认为它也更具可读性。 –

+0

我会避免在序列上使用minOccurs/maxOccurs,它可能会使处理复杂化。 –