XML Schema中的xs:group
和xs:sequence
有什么区别?什么时候你会使用其中一个呢?
发布于 2012-09-17 06:36:19
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>
https://stackoverflow.com/questions/12431031
复制相似问题