Tutoriel sur le...login
Tutoriel sur le schéma XML
auteur:php.cn  temps de mise à jour:2022-04-20 14:13:02

Qualifications/facettes du schéma XML


Les restrictions sur les éléments XML sont appelées facettes.

Qualification des valeurs

L'exemple suivant définit un élément nommé "age" avec une qualification. La valeur de l'âge ne peut pas être inférieure à 0 ni 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>




Limitations sur un ensemble de valeurs
Si vous devez limiter contenu à un ensemble de valeurs acceptables, nous utilisons des contraintes d’énumération.

L'exemple suivant définit un élément nommé "car" avec une qualification. Les valeurs acceptables sont uniquement : Audi, Golf, BMW :

<xs:element name="car">

<xs:simpleType>

​​ <xs:restriction base="xs:string">

​​​​ <xs:valeur d'énumération="Audi"/>
​​​​ <xs:valeur d'énumération="Golf"/>
​​​​ <xs:valeur d'énumération="BMW"/>
​​ </xs:restriction>
</xs:simpleType>
</xs:element>


L'exemple ci-dessus peut également être écrit comme :

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

<xs:simpleType name="carType">

​ <xs:restriction base="xs:string">
​​ <xs:valeur d'énumération="Audi"/>
​​ <xs:valeur d'énumération="Golf"/>
​​ <xs:valeur d'énumération="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".


Limitations sur une série de valeurs

Pour limiter le contenu d'un élément XML à une série de chiffres ou de lettres utilisables, nous devons utiliser une contrainte de modèle.

L'exemple suivant définit un élément nommé "lettre" avec une qualification. Les valeurs acceptables sont uniquement l'une des lettres minuscules a - z :

<xs:element name="letter">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:valeur du motif="[a-z]"/>
​​ </xs:restriction>
</xs:simpleType>
</xs:element>

L'exemple suivant définit un élément nommé "initiales" avec une qualification. Les valeurs acceptables sont trois des 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>

L'exemple suivant définit également un élément nommé "initiales" avec une qualification. Les valeurs acceptables sont trois des 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>

L'exemple suivant définit un élément nommé "choice" avec une qualification. La valeur acceptable est la lettre x , l'une des. y ou z :

<xs:element name="choice">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:valeur du motif="[xyz]"/>
​​ </xs:restriction>
</xs:simpleType>
</xs:element>

L'exemple suivant définit un élément nommé "prodid" avec une qualification. Les valeurs acceptables sont une séquence de cinq chiffres arabes, chacun compris 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 qualifications pour une plage de valeurs

L'exemple suivant définit Avec un élément qualifié nommé "lettre". Les valeurs acceptables sont zéro ou plusieurs lettres de a - z :

<xs:element name="letter">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:valeur du motif="([a-z])*"/>
​​ </xs:restriction>
</xs:simpleType>
</xs:element>

L'exemple suivant définit un élément nommé "lettre" avec une qualification. Les valeurs acceptables sont une ou plusieurs paires de lettres, chacune composée d'une lettre minuscule suivie d'une lettre majuscule. Par exemple, "sToP" passera la validation dans ce mode, mais "Stop", "STOP" ou "stop" ne passera pas la validation :

<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é « genre » avec une qualification. Les valeurs acceptables sont masculines ou féminines :

<xs:element name="gender">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:pattern value="mâle|femelle"/>
​​ </xs:restriction>
</xs:simpleType>
</xs:element>

L'exemple suivant définit un élément nommé "mot de passe" avec une qualification. Les valeurs acceptables sont une ligne de 8 caractères, qui 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>


Limitations sur les caractères d'espacement

Si vous devez spécifier les caractères d'espacement (caractères d'espacement), nous devons utiliser la qualification whiteSpace.

L'exemple suivant définit un élément nommé "adresse" avec une qualification. La qualification whiteSpace est définie sur « preserve », ce qui signifie que le processeur XML ne supprimera aucun caractère d'espacement :

<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é "adresse" avec une qualification. La qualification whiteSpace est définie sur "replace", ce qui signifie que le processeur XML supprimera tous les caractères d'espacement (nouvelles lignes, retours chariot, espaces et tabulations) :

<xs:element name =" adresse">
<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é "adresse" avec une qualification. La qualification whiteSpace est définie sur "collapse", ce qui signifie que le processeur XML supprimera tous les caractères d'espacement (les nouvelles lignes, les retours chariot, les espaces et les tabulations seront remplacés par des espaces, les espaces de début et de fin seront supprimés et plusieurs espaces consécutifs seront supprimés. être réduit à 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

Si vous devez limiter la longueur du valeur dans l'élément, nous devons utiliser les limites de longueur, maxLength et minLength.

Cet exemple définit un élément nommé "mot de passe" avec une qualification. La valeur doit comporter exactement 8 caractères :

<xs:element name="password">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:valeur de longueur="8"/>
​​ </xs:restriction>
</xs:simpleType>
</xs:element>

Cet exemple définit également un élément nommé "mot de passe" avec une qualification. La valeur minimale est de 5 caractères et la valeur maximale est de 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>


Restrictions de type de données

限定描述
enumeration定义可接受值的一个列表
fractionDigits定义所允许的最大的小数位数。必须大于等于0。
length定义所允许的字符或者列表项目的精确数目。必须大于或等于0。
maxExclusive定义数值的上限。所允许的值必须小于此值。
maxInclusive定义数值的上限。所允许的值必须小于或等于此值。
maxLength定义所允许的字符或者列表项目的最大数目。必须大于或等于0。
minExclusive定义数值的下限。所允许的值必需大于此值。
minInclusive定义数值的下限。所允许的值必需大于或等于此值。
minLength定义所允许的字符或者列表项目的最小数目。必须大于或等于0。
pattern定义可接受的字符的精确序列。
totalDigits定义所允许的阿拉伯数字的精确位数。必须大于0。
whiteSpace定义空白字符(换行、回车、空格以及制表符)的处理方式。