L'élément pattern permet de créer un modèle pour la valeur d'une élément ou d'un attribut XML à partir d'une expression régulière.

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

L'élément pattern possède plusieurs attributs destinés à identifier la facette et à préciser une expression régulière.

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

L'élément pattern 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>webmaster@laltruiste.com</element_enfant>
  <element_enfant>paris.claude@free.fr</element_enfant>
  <element_enfant>aurore_f@lycos.com</element_enfant>
  <element_enfant>spiderman@web.com</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:element name="element_enfant">
  <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:pattern value="(.)+@(.)+"/>
      </xsd:restriction>
  </xsd:simpleType>
  </xsd:element>
  <xsd:element name="element_racine">
  <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="element_enfant" maxOccurs="unbounded"/>
      </xsd:sequence>
  </xsd:complexType>
  </xsd:element>
</xsd:schema>