19
XML Schema中的xs:group
和xs:sequence
之間的區別是什麼?你什麼時候使用其中一種?XML模式中的組和序列之間的區別?
XML Schema中的xs:group
和xs:sequence
之間的區別是什麼?你什麼時候使用其中一種?XML模式中的組和序列之間的區別?
xs:sequence
- 連同xs:choice
和xs: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>
那麼,'XS:序列'在目標XML中隱含結構,'xs:group'基本上是語法糖來簡化模式? –
正確 - 您可以在不使用'group'的情況下編寫任何可能的模式 – MiMo