XML Schema中的
xs:group
和
xs:sequence
之间有什么区别?你什么时候使用一个或另一个?
xs:序列与xs:choice和xs:all一起用于定义目标XML中XML元素的有效序列。例如。此XML的架构:
原文链接:https://www.f2er.com/xml/293206.html<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>