Elemento attribute de XML Schema
Definición y uso
El elemento attribute define un atributo.
Información del elemento
Número de apariciones | Definido una vez en el elemento schema. Citado múltiples 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 |
Gramática
<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 este atributo. Puede establecerse uno de los siguientes valores:
- "qualified" - Indica que debe limitarse este atributo mediante 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 y no requiere que el nombre sin dos puntos (NCName) de este atributo coincida, es decir, el nombre local.
id
Opcional. Especificar el ID único de este elemento.
nombre
Opcional. Especificar el nombre del atributo. Las propiedades name y ref no pueden aparecer simultáneamente.
ref
Opcional. Especificar la referencia al atributo especificado. Las propiedades name y ref no pueden aparecer simultáneamente. Si se utiliza ref, no se pueden utilizar los elementos 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 el atributo. Se pueden establecer los siguientes valores:
- opcional - El atributo es opcional y puede tener cualquier valor (por defecto).
- prohibido - No se puede usar el atributo.
- requerido - Atributo necesario.
cualquier atributos
Opcional. Especificar cualquier otro atributo con espacio de nombres no esquemático.
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 el atributo "code" tiene una restricción. El único valor aceptable es dos letras mayúsculas de la A a la Z.
Ejemplo 2
Para declarar un atributo utilizando una definición de atributo existente en un tipo complejo, utilice el atributo 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
El atributo puede tener tanto un valor predeterminado como un valor fijo especificado. Cuando no se especifica otro valor, se asigna automáticamente el valor predeterminado al atributo. 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 al atributo. Sin embargo, a diferencia del valor predeterminado, si se especifica otro valor además del valor fijo para el atributo, el documento se 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"/>