Elemento de restricción de XML Schema

Definición y uso

El elemento restriction define las restricciones para simpleType, simpleContent o complexContent.

informaciónDeElemento

ocurrencia una
elementoPadre complexContent
Contenido grupo、todos、elección、secuencia、atributo、grupoAtributo、anyAttribute

Gramática

<restriction
id=ID
base=QName
cualquier atributos
>
Contenido para simpleType:
(anotación?,(simpleType?,(minExclusivo|minInclusivo| 
maxExclusivo|maxInclusivo|númeroTotal|decimales|
longitud|minLongitud|maxLongitud|enumeración|espacioBlanco|patrón)*))
Contenido para simpleContent:
(anotación?,(simpleType?,(minExclusivo |minInclusivo| 
maxExclusivo|maxInclusivo|númeroTotal|decimales|
(longitud|minLongitud|maxLongitud|enumeración|espacioBlanco|patrón)*)?, 
((atributo|grupoAtributo)*,anyAttribute?)
Contenido para complexContent:
(anotación?,(grupo|todos|elección|secuencia)?,
((atributo|grupoAtributo)*,anyAttribute?)
</restriction>

(El símbolo de declaración se encuentra en el elemento restriction, que puede aparecer cero o una vez.)

Atributo Descripción
id Opcional. Especifica el ID único del elemento.
base Obligatorio. Especifica el nombre de los tipos de datos integrados, simpleType o complexType de elementos definidos en este esquema (o en otros esquemas indicados por el espacio de nombres especificado).
cualquier atributos Opcional. Especifica cualquier otra propiedad con un espacio de nombres no de esquema.

Ejemplo

Ejemplo 1

El siguiente ejemplo define un elemento llamado "age" con restricciones. El valor de "age" no puede ser menor de 0 ni mayor de 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>

Ejemplo 2

Este ejemplo define un elemento llamado "initials". El elemento "initials" es un tipo simple con restricciones. Los valores aceptados son tres letras mayúsculas o minúsculas de la a a la 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>

Ejemplo 3

Este ejemplo define un elemento llamado "password". El elemento "password" es un tipo simple con restricciones. El valor debe tener como mínimo 5 caracteres y como máximo 8 caracteres:

<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>

Ejemplo 4

Este ejemplo muestra una definición de tipo complejo complejo utilizando restricciones. El tipo complejo "Chinese_customer" se deriva del tipo complejo "customer" común, y el valor fijo del elemento "country" es "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>