Limites/Facettes XSD
- Page précédente Propriétés XSD
- Page suivante Éléments complexes XSD
La restriction (restriction) est utilisée pour définir les valeurs acceptables pour un élément XML ou une propriété. La restriction d'un élément XML est appelée facette.
Restriction des valeurs
L'exemple suivant définit un élément nommé "age" avec une restriction. La valeur de age 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>
Limitation d'un ensemble de valeurs
Pour limiter le contenu d'un élément XML à un ensemble de valeurs acceptables, nous devons utiliser une contrainte d'énumération (enumeration constraint).
Le prochain exemple définit un élément nommé "car" avec une limitation. Les valeurs acceptées ne sont que : 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 précédent peut également être écrit comme suit :
<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>
Remarque :Dans ce cas, le type "carType" peut être utilisé par d'autres éléments, car il ne fait pas partie de l'élément "car".
Limitation d'une série de valeurs
Pour limiter le contenu d'un élément XML à une série de valeurs utilisables, nous devons utiliser une contrainte de modèle (pattern constraint).
Le prochain exemple définit un élément nommé "letter" avec une limitation. Les valeurs acceptées ne sont qu'une lettre minuscule a - z :
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Le prochain exemple définit un élément nommé "initials" avec une limitation. Les valeurs acceptées sont trois lettres majuscules 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>
Le prochain exemple définit également un élément nommé "initials" avec une limitation. Les valeurs acceptées sont trois lettres majuscules ou minuscules 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>
Le prochain exemple définit un élément nommé "choice" avec une limitation. Les valeurs acceptées sont les lettres 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>
Le prochain exemple définit un élément nommé "prodid" avec une limitation. Les valeurs acceptées sont une séquence de cinq chiffres arabes, chaque chiffre se situant entre 0 et 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 limitations pour une série de valeurs
L'exemple suivant définit un élément nommé "letter" avec une limitation. Les valeurs acceptées sont zéro ou plusieurs lettres 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 nommé "letter" avec une limitation. Les valeurs acceptées sont un ou plusieurs paires de lettres, chaque paire composée d'une lettre minuscule suivie d'une lettre majuscule. Par exemple, "sToP" passera cette validation, mais "Stop", "STOP" ou "stop" ne le feront pas :
<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 nommé "gender" avec une limitation. Les valeurs acceptées sont male ou female :
<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 nommé "password" avec une limitation. Les valeurs acceptées sont une ligne de caractères composée de 8 caractères, ces caractères doivent être des lettres majuscules ou minuscules a - z ou des chiffres 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>
Limitation des caractères blancs
Pour définir le traitement des caractères blancs (caractères d'espace), nous devons utiliser la limitation whiteSpace.
L'exemple suivant définit un élément nommé "address" avec une limitation. Cette limitation whiteSpace est définie sur "preserve", ce qui signifie que le processeur XML ne supprimera aucun caractère blanc :
<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 nommé "address" avec une limitation. Cette limitation whiteSpace est définie sur "replace", ce qui signifie que le processeur XML supprimera tous les caractères blancs (retours chariot, retour ligne, espaces et tabulations) :
<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 nommé "address" avec une limitation. Cette limitation whiteSpace est définie sur "collapse", ce qui signifie que le processeur XML supprimera tous les caractères d'espace (les retours chariot, les entêtes, les espaces et les tabulations seront remplacés par un espace, les espaces de début et de fin seront supprimés, et les espaces multiples consécutifs seront 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>
Limitation de la longueur
Pour limiter la longueur des valeurs des éléments, il faut utiliser les limitations length, maxLength et minLength.
Dans cet exemple, un élément nommé "password" avec une limitation est défini. Sa valeur doit être exactement de 8 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 également un élément nommé "password" avec une limitation. Sa valeur doit être comprise entre 5 et 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>
Limitation du type de données
Limitation | Description |
---|---|
enumeration | Définir une liste de valeurs acceptables |
fractionDigits | Définir le nombre maximum de décimales autorisées. Il doit être supérieur ou égal à 0. |
length | Définir le nombre exact de caractères ou d'éléments de liste autorisés. Il doit être supérieur ou égal à 0. |
maxExclusive | Définir la limite supérieure des valeurs numériques. Les valeurs autorisées doivent être inférieures à cette valeur. |
maxInclusive | Définir la limite supérieure des valeurs numériques. Les valeurs autorisées doivent être inférieures ou égales à cette valeur. |
maxLength | Définir le nombre maximum de caractères ou d'éléments de liste autorisés. Il doit être supérieur ou égal à 0. |
minExclusive | Définir la limite inférieure des valeurs numériques. Les valeurs autorisées doivent être supérieures à cette valeur. |
minInclusive | Définir la limite inférieure du nombre. Les valeurs autorisées doivent être supérieures ou égales à cette valeur. |
minLength | Définir le nombre minimum de caractères ou d'éléments autorisés. Doit être supérieur ou égal à 0. |
pattern | Définir la séquence précise de caractères acceptés. |
totalDigits | Définir le nombre précis de chiffres arabes autorisés. Doit être supérieur à 0. |
whiteSpace | Définir le traitement des caractères blancs (retours à la ligne, retours chariot, espaces et tabulations). |
- Page précédente Propriétés XSD
- Page suivante Éléments complexes XSD