Elemento <xsd:attribute>
Declara un atributo.
<attribute
default = string
fixed = string
form = (qualified | unqualified)
id = ID
name = NCName
ref = QName
type = QName
use = (optional | prohibited | required): optional
{any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleType?))
</attribute>
Atributos
default
El atributo tiene un valor predeterminado. Si el atributo no se especifica en una instancia de un documento XML, tiene el valor dado. Si no está presente en el documento de instancia, debe aparecer en el conjunto de información posterior a la validación del esquema. Los procesadores del esquema actuarían como si el atributo se hubiera especificado con el valor predeterminado si no estaba realmente en el documento de instancia. Los atributos Default y fixed no pueden estar presentes a la vez.Opcional.
fixed
El atributo tiene un valor fijo. Si el atributo está presente en un documento de instancia, su valor debe ser igual al valor fijo dado. Si no está presente, recibe el valor proporcionado. Los atributos Default y fixed no pueden estar presentes a la vez.Opcional.
form
Formato del atributo. El valor predeterminado es el del atributo attributeFormDefault del elemento schema que contiene el atributo. El valor debe ser una de las cadenas siguientes: "qualified" o "unqualified".Si el valor es unqualified, no se requiere que este atributo se certifique con el prefijo del espacio de nombres y se compara con el nombre sin signos de dos puntos (NCName) del atributo (nombre local).
Si el valor es qualified, este atributo debe ser certificado mediante la combinación del targetNamespace del esquema y el NCName del atributo.
Opcional.
id
Identificador de este elemento. El valor id debe ser de tipo ID y debe ser único dentro del documento que contiene este elemento.Opcional.
nombre
El nombre del atributo. El nombre debe ser un NCName, como se define en la especificación de los espacios de nombres XML. Se requiere si el elemento contenedor es el elemento schema. Los atributos Name y ref no pueden estar presentes a la vez.Cuando un documento XML se valida con respecto a un esquema, cada atributo del documento se valida con respecto al elemento attribute del esquema.
Opcional.
ref
Nombre de un atributo declarado en este esquema (u otro esquema indicado por el espacio de nombres especificado). El valor de ref debe ser un nombre completo (QName). El tipo puede incluir un prefijo de espacio de nombres. Los atributos Name y ref no pueden estar presentes a la vez. Si ref está presente, los elementos simpleType, form y type no pueden estar presentes.Para declarar un atributo mediante una definición de atributo existente en un tipo complejo, utilice el atributo ref para especificar la definición del atributo existente.
<xs:attribute name="mybaseattribute"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:maxInclusive value="1000"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:complexType name="myComplexType"> <xs:attribute ref="mybaseattribute"/> </xs:complexType>
Opcional.
type
Nombre de un tipo de datos integrado o un tipo simple definido en este esquema (u otro esquema indicado por el espacio de nombres especificado). El tipo debe ser QName. El tipo puede incluir un prefijo de espacio de nombres. El atributo type solo puede estar presente cuando el contenido no incluya un elemento simpleType.Opcional.
use
Indicador de cómo se utiliza el atributo.Si se especifica, este atributo debe tener uno de los valores siguientes.
optional
El atributo es opcional y puede tener cualquier valor. Éste es el valor predeterminado. Los siguientes procedimientos son equivalentes.
<xs:attribute name="myattr" type="xs:string"/> <xs:attribute name="myattr" type="xs:string" use="optional"/>
prohibited
El atributo no puede utilizarse. Este atributo se utiliza en una restricción de otro tipo complejo para evitar el uso de los atributos existentes.
<xs:complexType name="A"> <xs:attribute name="x" type="xs:NCName"/> <xs:attribute name="y" type="xs:QName"/> </xs:complexType>
<xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>
required
El atributo debe aparecer una vez.
Se requiere el atributo y puede contener cualquier valor permitido por esta definición de tipo del atributo.
<xs:attribute name="myattr" type="xs:string" use="required"/>
Este atributo se usa en una restricción o extensión de otro tipo complejo, para requerir que un atributo o atributos especificados estén presentes.
<xs:complexType name="A"> <xs:attribute name="x" type="xs:NCName"/> <xs:attribute name="y" type="xs:QName"/> </xs:complexType>
<xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>
Si se declara el atributo como global (su elemento primario es schema), se requiere en todos los elementos del esquema.
Opcional.
Información del elemento
Número de apariciones |
Se define una vez en el elemento schema. Se hace referencia varias veces en tipos complejos o grupos de atributos. |
Elementos primarios |
attributeGroup, schema, complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent) |
Contenido |
Notas
Una declaración de atributos asocia un nombre con una definición de tipo, que puede ser un tipo de datos integrado o un tipo simple.
Las declaraciones de atributos pueden estar presentes como elementos secundarios de los elementos schema, complexType y attributeGroup (con ámbito global) o en definiciones de tipos complejos. Para los tipos complejos, las declaraciones de atributos pueden estar presentes en forma de declaraciones locales o de referencias a atributos con ámbito global.
Además, los atributos pueden aparecer por referencia dentro de elementos attributeGroup y complexType.
Ejemplos
En el ejemplo siguiente se declara un atributo por referencia a un tipo integrado con el valor predeterminado test y se usa en un elemento complexType.
En el ejemplo siguiente un atributo required se declara directamente dentro de un elemento complexType.
En el ejemplo siguiente se declara un atributo mediante la derivación del tipo entero integrado (por restricción) y la restricción del intervalo de valores entre "60"
y "95"
, ambos incluidos.
En el ejemplo siguiente se declara un atributo como una lista que contiene valores decimales. Esto permite a un atributo como shoeSizes="10.5 9 8 11" contener una lista de los valores 10.5, 9, 8 y 11.
Otros recursos
Para obtener más información, vea la parte 1 sobre recomendación sobre estructuras de esquema XML en W3C en la dirección www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-all.
Vea también
Referencia
Referencia de esquemas XML (XSD)
Elementos de los esquemas XML