Élément restriction de XML Schema

Définition et utilisation

L'élément restriction définit les contraintes pour simpleType, simpleContent ou complexContent.

Informations sur l'élément

Apparition Une seule
Élément parent complexContent
Contenu group、all、choice、sequence、attribute、attributeGroup、anyAttribute

Grammaire

<restriction
id=ID
base=QName
any attributes
>
Contenu pour simpleType:
(annotation?,(simpleType?,(minExclusive|minInclusive| 
maxExclusive|maxInclusive|totalDigits|fractionDigits|
length|minLength|maxLength|enumeration|whiteSpace|pattern)*))
Contenu pour simpleContent:
(annotation?,(simpleType?,(minExclusive |minInclusive| 
maxExclusive|maxInclusive|totalDigits|fractionDigits|
(length|minLength|maxLength|enumeration|whiteSpace|pattern)*)?, 
((attribute|attributeGroup)*,anyAttribute?))
Contenu pour complexContent:
(annotation?,(group|all|choice|sequence)?,
((attribute|attributeGroup)*,anyAttribute?))
</restriction>

(? Le symbole indique que cet élément peut apparaître zéro ou une fois dans l'élément restriction.)

Propriétés Description
id Optionnel. Définit l'ID unique de cet élément.
base Obligatoire. Définit le nom des éléments built-in, simpleType ou complexType définis dans ce schéma (ou dans un autre schéma indiqué par l'espace de noms spécifié).
any attributes Optionnel. Définit toutes les autres propriétés portant une espace de noms non-schématique.

Instance

Exemple 1

L'exemple suivant définit un élément nommé "age" avec des contraintes. La valeur de "age" ne peut pas être inférieure à 0 ou supérieure à 100 :

<xs:element name="age">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="100"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Exemple 2

Cet exemple définit un élément nommé "initials". L'élément "initials" est un type simple avec des contraintes. Les valeurs acceptées sont trois lettres majuscules ou minuscules de a à z :

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Exemple 3

Cet exemple définit un élément nommé "password". L'élément "password" est un type simple avec des contraintes. La valeur doit comporter au moins 5 caractères et au plus 8 caractères :

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="5"/>
      <xs:maxLength value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Exemple 4

Cet exemple montre une définition de type complexe complexe utilisant des contraintes. Le type complexe "Chinese_customer" dérive d'un type complexe "customer" ordinaire, où la valeur fixe de l'élément "country" est "China":

<xs:complexType name="customer">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
    <xs:element name="country" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="Chinese_customer">
  <xs:complexContent>
    <xs:restriction base="customer">
      <xs:sequence>
        <xs:element name="firstname" type="xs:string"/>
        <xs:element name="lastname" type="xs:string"/>
        <xs:element name="country" type="xs:string" fixed="China"/>
      </xs:sequence>
    </xs:restriction>
  </xs:complexContent>
</xs:complexType>