XML Schema restriction 元素

定义和用法

restriction 元素定义对 simpleType、simpleContent 或 complexContent 定义的约束。 -> L'élément restriction définit les contraintes pour simpleType, simpleContent ou complexContent.

元素信息

出现次数 一次
父元素 complexContent
内容 group、all、choice、sequence、attribute、attributeGroup、anyAttribute

语法

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

(? 符号声明在 restriction 元素中该元素可出现零次或一次。) -> (? La déclaration de symbole se situe dans l'élément restriction. Cet élément peut apparaître zéro ou une fois.)

属性 Description
id Optionnel. Spécifie l'ID unique de cet élément.
base Obligatoire. Spécifie le nom des types de données intégrés, des simpleType ou des éléments complexType définis dans ce schéma (ou dans un autre schéma indiqué par l'espace de noms spécifié).
any attributes Optionnel. Spécifie toute autre propriété avec un 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

Ce 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

Ce exemple définit un élément nommé "password". L'élément "password" est un type simple avec des contraintes. La valeur doit contenir 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

Ce exemple montre une définition de type complexe complexe utilisant des contraintes. Le type complexe "Chinese_customer" dérive du type complexe "customer" ordinaire, et 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>