Saltar al contenido principal

attribute

El elemento attribute se utiliza para declarar un atributo de un elemento XML.

La información que permite definir es:

  • El nombre del atributo.
  • Su tipo de dato.
  • El valor por defecto.
  • Si tiene un valor fijo y cuál es.
  • Si es obligatorio u opcional.

Supongamos un documento XML con el siguiente elemento y su atributo:

<ciudad provincia="Lugo">Monforte de Lemos</ciudad>

El elemento XSD que permite validar el código anterior es el siguiente:

<xs:attribute name="provincia" type="xs:string" default="A Coruña"/>

Los atributos que se pueden definir en attribute son:

AtributoDescripción
nameNombre del atributo.
typeTipo de dato permitido como valores del atributo provincia.
defaultValor predeterminado.
useCon el valor required se indica que se trata de un atributo obligatorio. Si se indica este atributo, no se puede utilizar default de forma simultánea.
fixedPermite asignar un valor fijo al atributo.

Adicionalmente, haciendo uso de otros elementos XSD, podemos definir restricciones adicionales en los valores del atributo.

Dependencia de un elemento XML

Cada vez que se utilice el elemento attribute de XML Schema, se deberá incluir un element, ya que un atributo siempre va a depender de un elemento. Es decir, un atributo no existe a no ser que exista previamente un elemento.

El atributo provincia no puede existir si no existe <ciudad>:

<ciudad provincia="Lugo">Monforte de Lemos</ciudad>

El documento XSD que permite validar el XML sería el siguiente:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ciudad">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="provincia" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>

En este punto no es necesario entender cómo funciona el código anterior, sino saber que, cuando tenemos que añadir un attribute, tendremos que hacer lo mismo con element.