Xsd XML模式中的组和序列之间的差异?
XML模式和in-XML模式之间的区别是什么?何时使用一个或另一个?Xsd XML模式中的组和序列之间的差异?,xsd,Xsd,XML模式和in-XML模式之间的区别是什么?何时使用一个或另一个?xs:sequence-与xs:choice和xs:all一起用于定义目标XML中XML元素的有效序列。例如,此XML的模式: <mainElement> <firstSubElement/> <subElementA/> <subElementB/> </mainElement> 可以为公共子元素定义一个组: <xs:group name="sub
xs:sequence
-与xs:choice
和xs:all
一起用于定义目标XML中XML元素的有效序列。例如,此XML的模式:
<mainElement>
<firstSubElement/>
<subElementA/>
<subElementB/>
</mainElement>
可以为公共子元素定义一个组:
<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:sequence
暗示目标XML中的结构时,xs:group
基本上是简化模式的语法糖?正确-您可以编写任何可能的模式,而无需使用group
<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>