L'élément group permet de définir un groupe d'éléments et d'y faire référence dans un schéma XML.

<xsd:group
  id = ID 
  maxOccurs = (nonNegativeInteger | unbounded)  : 1
  minOccurs = nonNegativeInteger : 1
  name = NCName 
  ref = QName 
  {tout attribut ayant un espace de noms 
        différent de celui du schéma...}>
  Contenu : (annotation? ,
                 (all | choice | sequence)?)
</xsd:group>

L'élément group possède plusieurs attributs destinés à définir les caractéristiques du groupe d'éléments.

Attributs Description
id précise un identificateur unique pour le groupe.
maxOccurs précise le nombre d'occurrences maximum du groupe. Par défaut, ce nombre est égal à 1.
minOccurs précise le nombre d'occurrences minimum du groupe. Par défaut, ce nombre est égal à 1.
name indique le nom du groupe.
ref indique une référence à un groupe d'attributs.

L'élément group ne peut être inclus que dans les éléments suivants :

Exemple [voir]
<?xml version="1.0" encoding="ISO-8859-1"?>
<librairie 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="c:\schema.xsd">
  <livre isbn="2212110472" categorie="XML">
  <titre>
      Services Web avec XML, SOAP, WSDL, UDDI, ebXML...
  </titre>
  <auteur>Jean-Marie Chauvet</auteur>
  <editeur>Eyrolles</editeur>
  </livre>
  <livre isbn="2100065203" categorie="XML">
  <titre>XML - Manuel de Référence</titre>
  <auteur>R.Wyke</auteur>
  <auteur>S.Rehman</auteur>
  <auteur>B.Leupen</auteur>
  <editeur>Microsoft Press</editeur>
  </livre>
  <livre isbn="1928994474" categorie="XML">
  <titre>XML.NET Developer's Guide</titre>
  <auteur>Collectif</auteur>
  <editeur>Syngress</editeur>
  </livre>
</librairie>

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        elementFormDefault="qualified" 
        attributeFormDefault="unqualified">
  <xsd:simpleType name="type_isbn">
  <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9]{10}"/>
  </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:attributeGroup name="groupe_attributs_livre">
  <xsd:attribute name="isbn" 
                  type="type_isbn" 
                  use="required"/>
  <xsd:attribute name="categorie" type="xsd:string"/>
  </xsd:attributeGroup>
  
  <xsd:group name="groupe_elements_livre">
  <xsd:sequence>
      <xsd:element name="titre" type="xsd:string"/>
      <xsd:element name="auteur" 
                  type="xsd:string" 
                  minOccurs="1" 
                  maxOccurs="unbounded"/>
      <xsd:element name="editeur" type="xsd:string"/>
  </xsd:sequence>
  </xsd:group>
  
  <xsd:complexType name="type_livre">
  <xsd:sequence>
      <xsd:group ref="groupe_elements_livre"/>
  </xsd:sequence>
  <xsd:attributeGroup ref="groupe_attributs_livre"/>
  </xsd:complexType>
  
  <xsd:complexType name="type_librairie">
  <xsd:sequence>
      <xsd:element name="livre" 
                  type="type_livre" 
                  minOccurs="1" 
                  maxOccurs="unbounded"/>
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="librairie" type="type_librairie"/>
</xsd:schema>