2012-09-14 39 views

回答

23

xs:sequence - 連同xs:choicexs:all - 用於定義目標XML中XML元素的有效序列。例如。該XML架構:

<mainElement> 
    <firstSubElement/> 
    <subElementA/> 
    <subElementB/> 
</mainElement> 

是一樣的東西:

<xs:element name='mainElement'> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="firstSubElement"/> 
     <xs:element name="subElementA"/> 
     <xs:element name="subElementB"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

xs:group用於定義以下,然後可以在該架構的不同部分中所引用的某些規則命名組XML元素。例如,如果XML是:

<root> 

    <mainElementA> 
    <firstSubElement/> 
    <subElementA/> 
    <subElementB/> 
    </mainElementA> 

    <mainElementB> 
    <otherSubElement/> 
    <subElementA/> 
    <subElementB/> 
    </mainElementB> 

</root> 

您可以定義一組爲共同的子元素:

<xs:group name="subElements"> 
    <xs:sequence> 
    <xs:element name="subElementA"/> 
    <xs:element name="subElementB"/> 
    </xs:sequence> 
</xs:group> 

,然後使用它:

<xs:element name="mainElementA"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="firstSubElement"/> 
     <xs:group ref="subElements"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

    <xs:element name="mainElementB"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="otherSubElement"/> 
     <xs:group ref="subElements"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
+3

那麼,'XS:序列'在目標XML中隱含結構,'xs:group'基本上是語法糖來簡化模式? –

+3

正確 - 您可以在不使用'group'的情況下編寫任何可能的模式 – MiMo

相關問題