Atributo XSD

Todos los atributos se declaran como tipos simples.

¿Qué es un atributo?

Los elementos simples no pueden tener atributos. Si un elemento tiene atributos, se considerará como un tipo compuesto. Sin embargo, los atributos siempre se declaran como tipos simples.

¿Cómo declarar un atributo?

La sintaxis para definir un atributo es:

<xs:attribute name="xxx" type="yyy"/>

Aquí, xxx representa el nombre del atributo, y yyy especifica el tipo de datos del atributo. XML Schema tiene muchos tipos de datos integrados.

Los tipos más comunes son:

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time

Ejemplo

Este es un elemento XML con atributo:

<lastname lang="EN">Smith</lastname>

Esta es la definición correspondiente del atributo:

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

Valores por defecto y fijos de atributos

Los atributos pueden tener un valor por defecto o fijo especificado.

Cuando no se especifica otro valor, el valor por defecto se asignará automáticamente al elemento.

En el siguiente ejemplo, el valor por defecto es "EN":

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

El valor fijo también se asignará automáticamente al elemento, y no podrá especificar otro valor.

En el siguiente ejemplo, el valor fijo es "EN":

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

Atributos opcionales y obligatorios

Por defecto, los atributos son opcionales. Si desea especificar que un atributo es obligatorio, utilice el atributo "use":

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

Restricciones de contenido

Cuando un elemento XML o atributo tiene un tipo de datos definido, se agregan restricciones al contenido del elemento o atributo.

Si el tipo de elemento XML es "xs:date" y su contenido es una cadena de caracteres similar a "Hello World", el elemento no se validará.

A través del esquema XML, también puede agregar sus propias restricciones a sus elementos y atributos XML. Estas restricciones se conocen como facets (nota del editor: facets se puede traducir como caras de un poliedro, y aquí se puede traducir como restricciones). Obtendrá más información sobre facets en la siguiente sección.