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