attributeGroup
Groups a set of attribute declarations so that they can be incorporated as a group for complex type definitions.
<attributeGroup id = ID name = NCName ref = QName {any attributes with non-schema Namespace…}> Content: (annotation?), ((attribute | attributeGroup)*, anyAttribute?)) </attributeGroup>
Attributes
- id
- The ID of this element. The id value must be of type ID and be unique within the document containing this element.
Optional.
- name
- The name of the attribute group whose attributes are included in an attributeGroup element or complexType element. The name must be a no-colon-name (NCName) as defined in the XML Namespaces specification. Name and ref attributes cannot both be present. Name attribute can only be present if the attribute group is a child of the schema element.
Optional.
- ref
- The reference name of the attribute group whose attributes are included in an attributeGroup element or complexType element.
Name and ref attributes cannot both be present. Ref attribute can only be present if the attribute group is not a child of the schema element.
This value must be a qualified name (QName).
Optional.
Element Information
Number of occurrences | Unlimited |
Parent elements | attributeGroup, complexType, schema, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent) |
Contents | annotation, attribute, attributeGroup, anyAttribute |
Remarks
An attribute group can be defined only as a child of the schema element. In this case, the name attribute must be present and contain the attribute, attributeGroup, or anyAttribute elements that make up the attribute group.
An attribute group can be included in an attributeGroup or complexType, in which case, the ref attribute must be present and the attributeGroup element must be empty. See the following example.
The attributeGroup elements can contain other attributeGroup elements.
Example
The following example shows an attribute group defined (myAttributeGroup) and used in a complex type (myElementType).
<xs:attributeGroup name="myAttributeGroup"> <xs:attribute name="someattribute1" type="xs:integer"/> <xs:attribute name="someattribute2" type="xs:string"/> </xs:attributeGroup> <xs:complexType name="myElementType"> <xs:attributeGroup ref="myAttributeGroup"/> </xs:complexType>
The following example shows two attribute groups defined (myAttributeGroupA and myAttributeGroupB) with one containing the other.
<xs:attributeGroup name="myAttributeGroupA"> <xs:attribute name="someattribute10" type="xs:integer"/> <xs:attribute name="someattribute11" type="xs:string"/> </xs:attributeGroup> <xs:attributeGroup name="myAttributeGroupB"> <xs:attribute name="someattribute20" type="xs:date"/> <xs:attributeGroup ref="myAttributeGroupA"/> </xs:attributeGroup>
See Also
XML Schema Reference (XSD) | XML Schema Elements
For more information, see the W3C XML Schema Part 1: Structures Recommendation at http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-attributeGroup.
Other Resources
W3C Namespaces in XML Recommendation