Elemento attribute de XML Schema

Definición y uso

El elemento attribute define un atributo.

Información del elemento

Número de apariciones Se define una vez en el elemento schema. Se referencia varias veces en tipos complejos o grupos de atributos.
Elemento padre attributeGroup、schema、complexType、restriction (simpleContent)、extension (simpleContent)、restriction (complexContent)、extension (complexContent)
Contenido anotación、simpleType

Sintaxis

<attribute
default=string
fixed=string
form=qualified|unqualified
id=ID
name=NCName
ref=QName
type=QName
use=opcional|prohibido|required
cualquier atributos
>
(anotación?,(simpleType?))
</attribute>

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

Atributo

default

Opcional. Define el valor predeterminado del atributo. No se pueden usar las propiedades default y fixed al mismo tiempo.

fixed

Opcional. Define el valor fijo del atributo. No se pueden usar las propiedades default y fixed al mismo tiempo.

form

Opcional. Define el formato del atributo. El valor predeterminado es el valor de la propiedad attributeFormDefault del elemento schema que contiene el atributo. Puede establecerse los siguientes valores:

  • "qualified" - Indica que se debe limitar este atributo mediante el prefijo de espacio de nombres y el nombre sin dos puntos (NCName) de este atributo.
  • "unqualified" - Indica que este atributo no requiere prefijo de espacio de nombres, ni coincide con el nombre sin prefijo (NCName) de este atributo, es decir, el nombre local.

id

Opcional. Especificar el ID único de este elemento.

nombre

Opcional. Especificar el nombre de la propiedad. Las propiedades name y ref no pueden aparecer simultáneamente.

ref

Opcional. Especificar la referencia a la propiedad especificada. Las propiedades name y ref no pueden aparecer simultáneamente. Si se utiliza ref, no pueden aparecer el elemento simpleType, form y type.

tipo

Opcional. Especificar el tipo de datos integrado o tipo simple. La propiedad type solo debe aparecer cuando el contenido no contiene el elemento simpleType.

usar

Opcional. Especificar cómo se debe usar esta propiedad. Se pueden establecer los siguientes valores:

  • opcional - La propiedad es opcional y puede tener cualquier valor (por defecto).
  • prohibido - No se puede usar la propiedad.
  • requerido - Propiedad necesaria.

cualquier atributos

Opcional. Especificar cualquier otra propiedad con el espacio de nombres no esquema.

Ejemplo

Ejemplo 1

<xs:attribute name="code">
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[A-Z][A-Z]"/>
  </xs:restriction>
</xs:simpleType>
</xs:attribute>

El ejemplo anterior indica que la propiedad "code" tiene una restricción. El único valor aceptable es dos letras mayúsculas del rango A a Z.

Ejemplo 2

Para declarar una propiedad utilizando una definición de propiedad existente en un tipo complejo, utilice la propiedad ref:

<xs:attribute name="code">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][A-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>
<xs:complexType name="someComplexType">
  <xs:attribute ref="code"/>
</xs:complexType>

Ejemplo 3

La propiedad puede tener tanto un valor predeterminado como un valor fijo especificado. Cuando no se especifica otro valor, se asigna automáticamente el valor predeterminado a la propiedad. En el siguiente ejemplo, el valor predeterminado es "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/>

Cuando no se especifica otro valor, se asigna automáticamente un valor fijo a la propiedad. Sin embargo, a diferencia del valor predeterminado, si se especifica otro valor además del valor fijo para la propiedad, el documento lo validará como inválido. En el siguiente ejemplo, el valor fijo es "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

Ejemplo 4

Todos los atributos son por defecto opcionales. Si desea especificar explícitamente que un atributo es opcional, utilice el atributo "use":

<xs:attribute name="lang" type="xs:string" use="optional"/>

Hacer que el atributo sea obligatorio:

<xs:attribute name="lang" type="xs:string" use="required"/>