L'élément enumeration permet de contraindre la valeur d'un élément ou d'un attribut à une seule possibilité.

<xsd:enumeration 
  id = ID 
  value = simpleType 
  {tout attribut ayant un espace de noms 
        différent de celui du schéma...}>
  Contenu : (annotation?)
</xsd:enumeration>

L'élément enumeration possède plusieurs attributs destinés à identifier la facette et à préciser une valeur possible.

Attributs Description
id précise un identificateur unique pour l'élément.
value spécifie une valeur de type simple (simpleType).

L'élément enumeration ne peut être inclus que dans l'élément suivant :

Exemple [voir]
<?xml version="1.0" encoding="ISO-8859-1"?>
<element_racine 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xsi:noNamespaceSchemaLocation="c:\schema.xsd">
  <element_enfant attribut="Veuf">
  Monsieur
  </element_enfant>
  <element_enfant attribut="Mariée">
  Madame
  </element_enfant>
  <element_enfant attribut="Célibataire">
  Mademoiselle
  </element_enfant>
  <element_enfant attribut="Concubin">
  Monsieur
  </element_enfant>
</element_racine>

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        elementFormDefault="qualified">
  <xsd:complexType name="type_enfant">
  <xsd:simpleContent>
      <xsd:extension base="valeurs_enfant">
        <xsd:attribute name="attribut" use="required">
        <xsd:simpleType>
          <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="Célibataire"/>
            <xsd:enumeration value="Concubin"/>
            <xsd:enumeration value="Concubine"/>
            <xsd:enumeration value="Marié"/>
            <xsd:enumeration value="Mariée"/>
            <xsd:enumeration value="Veuf"/>
            <xsd:enumeration value="Veuve"/>
          </xsd:restriction>
        </xsd:simpleType>
        </xsd:attribute>
      </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  
  <xsd:simpleType name="valeurs_enfant">
  <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Madame"/>
      <xsd:enumeration value="Mademoiselle"/>
      <xsd:enumeration value="Monsieur"/>
  </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="element_racine">
  <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="element_enfant" 
                        type="type_enfant" 
                        maxOccurs="unbounded"/>
      </xsd:sequence>
  </xsd:complexType>
  </xsd:element>
</xsd:schema>