2011-08-24 92 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,它可能會使處理複雜化。 –