Derniers tutoriels de développement web
 

Restrictions XSD / Facets


Les restrictions sont utilisées pour définir des valeurs acceptables pour les éléments ou les attributs XML. Restrictions sur les éléments XML sont appelés facettes.


Restrictions sur les valeurs

L'exemple suivant définit un élément appelé "age" avec une restriction. La valeur de l'âge ne peut pas être inférieure à 0 ou supérieure à 120:

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

Restrictions sur un ensemble de valeurs

Pour limiter le contenu d'un élément XML à un ensemble de valeurs acceptables, nous devrions utiliser la contrainte d'énumération.

L'exemple ci - dessous définit un élément appelé "car" avec une restriction. Les seules valeurs acceptables sont: Audi, Golf, BMW :

<xs:element name="car">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Audi"/>
      <xs:enumeration value="Golf"/>
      <xs:enumeration value="BMW"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple ci-dessus pourrait également avoir été écrit comme ceci:

<xs:element name="car" type="carType"/>

<xs:simpleType name="carType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>

Note: Dans ce cas , le type "carType" peut être utilisé par d' autres éléments , car il ne fait pas partie de la "car" élément.


Restrictions sur une série de valeurs

Afin de limiter le contenu d'un élément XML pour définir une série de chiffres ou de lettres qui peuvent être utilisés, on utiliserait la contrainte de modèle.

L'exemple ci - dessous définit un élément appelé "letter" avec une restriction. La seule valeur acceptable est l'une des lettres de MINUSCULES de A à Z:

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit un élément appelé "initials" avec une restriction. La seule valeur acceptable est trois des lettres MAJUSCULES de A à Z:

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

L'exemple suivant définit également un élément appelé "initials" avec une restriction. La seule valeur acceptable est trois des majuscules ou minuscules lettres 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>

L'exemple suivant définit un élément appelé "choice" d'une restriction. La seule valeur acceptable est l'une des lettres suivantes: x, y, ou z:

<xs:element name="choice">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[xyz]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit un élément appelé "prodid" avec une restriction. La seule valeur acceptable est de cinq chiffres dans une séquence, et chaque chiffre doit être dans une plage de 0 à 9:

<xs:element name="prodid">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Autres restrictions sur une série de valeurs

L'exemple ci - dessous définit un élément appelé "letter" avec une restriction. La valeur acceptable est zéro ou plusieurs occurrences de lettres minuscules de a à z:

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z])*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit également un élément appelé "letter" avec une restriction. La valeur acceptable est une ou plusieurs paires de lettres, chaque paire étant constituée d'une lettre minuscule suivie par une lettre majuscule. Par exemple, "sToP" sera validé par ce modèle, mais pas "Stop" ou "STOP" ou "stop" :

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z][A-Z])+"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit un élément appelé "gender" avec une restriction. La seule valeur acceptable est mâle ou femelle:

<xs:element name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit un élément appelé "password" de "password" avec une restriction. Il doit y avoir exactement huit caractères dans une rangée et les caractères doivent être des lettres minuscules ou majuscules de A à Z, ou un nombre de 0 à 9:

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z0-9]{8}"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrictions sur les caractères d'espacement

Pour spécifier comment les caractères blancs doivent être manipulés, nous devrions utiliser la contrainte whiteSpace.

Cet exemple définit un élément appelé "address" avec une restriction. La contrainte whiteSpace est réglé sur "preserve" , ce qui signifie que le processeur XML ne supprimera pas les caractères blancs:

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Cet exemple définit également un élément appelé "address" avec une restriction. La contrainte whiteSpace est réglé sur "replace" , ce qui signifie que le processeur XML REMPLACERA tous les caractères d'espace blanc (sauts de ligne, tabulations, les espaces, et les retours chariot) avec des espaces:

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="replace"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Cet exemple définit également un élément appelé "address" avec une restriction. La contrainte whiteSpace est réglé sur "collapse" l' "collapse" , ce qui signifie que le processeur XML supprime tous les caractères d'espace blanc (sauts de ligne, des onglets, des espaces, retours chariot sont remplacés par des espaces, avant et arrière espaces sont supprimés, et plusieurs espaces sont réduits à un seul espace):

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrictions sur Longueur

Pour limiter la longueur d'une valeur dans un élément, nous devrions utiliser la longueur, maxLength, et les contraintes de minLength.

Cet exemple définit un élément appelé "password" de "password" avec une restriction. La valeur doit être exactement huit caractères:

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

Cet exemple définit un autre élément appelé "password" de "password" avec une restriction. La valeur doit être au minimum de cinq caractères et un maximum de huit 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>

Restrictions pour Datatypes

Contrainte La description
enumeration Définit une liste de valeurs acceptables
fractionDigits Indique le nombre maximal de décimales admis. Doit être égal ou supérieur à zéro,
length Indique le nombre exact de caractères ou liste des articles autorisés. Doit être égal ou supérieur à zéro,
maxExclusive Indique les limites supérieures pour les valeurs numériques (la valeur doit être inférieure à cette valeur)
maxInclusive Indique les limites supérieures pour les valeurs numériques (la valeur doit être inférieure ou égale à cette valeur)
maxLength Indique le nombre maximal de caractères ou liste des articles autorisés. Doit être égal ou supérieur à zéro,
minExclusive Indique les limites inférieures de valeurs numériques (la valeur doit être supérieure à cette valeur)
minInclusive Indique les limites inférieures de valeurs numériques (la valeur doit être supérieure ou égale à cette valeur)
minLength Indique le nombre minimum de caractères ou liste des articles autorisés. Doit être égal ou supérieur à zéro,
pattern Définit la séquence exacte des caractères qui sont acceptables
totalDigits Indique le nombre exact de chiffres autorisés. Doit être supérieur à zéro
whiteSpace Indique comment l'espace blanc (sauts de ligne, des onglets, des espaces et des retours chariot) est manipulé