XML Schema group 元素

  • 定义和使用

    group 元素用于定义在复杂类型定义中使用的一组元素。
    父元素:schema, choice, sequence, complexType, 限制(simpleContent和complexContent两者),扩展(simpleContent和complexContent两者)
  • 语法

    <group
      id=ID
      name=NCName
      ref=QName
      maxOccurs=nonNegativeInteger|unbounded
      minOccurs=nonNegativeInteger
      any attributes
      >
      
      (annotation?,(all|choice|sequence)?)
      
    </group>
    (?符号声明该元素可以在组元素中出现0次或1次)
  • 参数

    属性 描述
    id 可选的。 指定元素的唯一ID
    name 可选的。 指定组的名称。 仅当架构元素是该组元素的父元素时,才使用此属性。 名称和引用属性不能同时存在
    ref 可选的。 指另一个组的名称。 名称和引用属性不能同时存在
    maxOccurs 可选的。 指定组元素可以在父元素中出现的最大次数。 该值可以是 >=0 的任何数字,或者如果您不希望限制最大数目,请使用值 “unbounded”。 预设值为 1
    minOccurs 可选的。 指定组元素可以在父元素中出现的最小次数。 该值可以是 >=0 的任何数字。默认值为1
    any attributes 可选的。 用非模式命名空间指定任何其他属性。
  • 示例

    以下示例定义了一个包含四个元素的序列的组,并在复杂类型定义中使用了group元素:
    <?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    <xs:group name="custGroup">
      <xs:sequence>
        <xs:element name="customer" type="xs:string"/>
        <xs:element name="orderdetails" type="xs:string"/>
        <xs:element name="billto" type="xs:string"/>
        <xs:element name="shipto" type="xs:string"/>
      </xs:sequence>
    </xs:group>
    
    <xs:element name="order" type="ordertype"/>
    
    <xs:complexType name="ordertype">
      <xs:group ref="custGroup"/>
      <xs:attribute name="status" type="xs:string"/>
    </xs:complexType>
    
    </xs:schema>