L'élément restriction permet de restreindre les données permises dans un élément ou un attribut XML.

<xsd:restriction 
  base = QName 
  id = ID 
  {tout attribut ayant un espace de noms 
        différent de celui du schéma...}>
  Contenu : (annotation?, 
               (group | all | choice | séquence)?, 
               ((attribute | attributeGroup)*, anyAttribute?))
</xsd:restriction>

L'élément restriction possède deux attributs définissant la structure restrictive.

Attributs Description
base indique un type de données de base.
id précise un identificateur unique pour l'élément.

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

Exemple [voir]
<?xml version="1.0"?>
<element_racine 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xsi:noNamespaceSchemaLocation="c:\schema.xsd">
  <nombre>51</nombre>
  <nombre>90</nombre>
  <nombre>80</nombre>
  <nombre>99</nombre>
</element_racine>

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        elementFormDefault="qualified">
  <xsd:simpleType name="entre50et100">
  <xsd:restriction base="xsd:nonNegativeInteger">
      <xsd:minExclusive value="50"/>
      <xsd:maxExclusive value="100"/>
  </xsd:restriction>
  </xsd:simpleType>

  <xsd:element name="nombre" type="entre50et100"/>

  <xsd:element name="element_racine">
  <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="nombre" maxOccurs="unbounded"/>
      </xsd:sequence>
  </xsd:complexType>
  </xsd:element>
</xsd:schema>