Elemento 'restriction' del XML Schema

Definición y uso

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

Información del elemento

número de apariciones una vez
Elemento padre complexContent
Contenido grupo、todo、elección、secuencia、atributo、grupoAtributo、cualquierAtributo

Gramática

<restriction
id=ID
base=QName
cualquier atributo
>
Contenido para simpleType:
(anotación?,(simpleType?,(minExclusivo|minInclusivo| 
maxExclusivo|maxInclusivo|digitosTotales|digitosDecimales|
longitud|minLongitud|maxLongitud|enumeración|espacioEnBlanco|patrón)*))
Contenido para simpleContent:
(anotación?,(simpleType?,(minExclusivo |minInclusivo| 
maxExclusivo|maxInclusivo|digitosTotales|digitosDecimales|
(longitud|minLongitud|maxLongitud|enumeración|espacioEnBlanco|patrón)*)?, 
((atributo|grupoAtributo)*,cualquierAtributo?))
Contenido para complexContent:
(anotación?,(grupo|todo|elección|secuencia)?,
((atributo|grupoAtributo)*,cualquierAtributo?))
</restriction>

(El símbolo '?' indica que el elemento puede aparecer cero o una vez en el elemento 'restriction').

Atributo Descripción
id Opcional. Define el ID único de este elemento.
base Obligatorio. Define el nombre de los elementos nativos, simpleType o complexType definidos en este esquema (o en otro esquema especificado por el espacio de nombres).
cualquier atributo Opcional. Define cualquier otro atributo con espacio de nombres no 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 entre 5 y 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 común "customer", 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>