Atributos 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 considera que es de tipo complejo. Pero el atributo en sí siempre se declara como un tipo simple.
¿Cómo definir un atributo?
La sintaxis para definir un atributo es:
<xs:attribute name="xxx" type="yyy"/>
donde xxx es 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:cadena
- xs: decimal
- xs:entero
- xs: booleano
- xs:fecha
- xs:tiempo
Ejemplo
Aquí hay un elemento XML con un atributo:
<lastname lang="EN">Smith</lastname>
Y aquí está la definición de atributo correspondiente:
<xs:attribute name="lang" type="xs:string"/>
Valores predeterminados y fijos para atributos
Los atributos pueden tener un valor predeterminado O un valor fijo especificado.
Un valor predeterminado se asigna automáticamente al atributo cuando no se especifica ningún otro valor.
En el siguiente ejemplo, el valor predeterminado es "EN":
<xs:attribute name="lang" type="xs:string" default="EN"/>
También se asigna automáticamente un valor fijo al atributo y no puede 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
Los atributos son opcionales por defecto. Para especificar que el atributo es obligatorio, utilice el atributo "use":
<xs:attribute name="lang" type="xs:string" use="required"/>
Restricciones sobre el contenido
Cuando un elemento o atributo XML tiene definido un tipo de datos, impone restricciones al contenido del elemento o atributo.
Si un elemento XML es del tipo "xs:date" y contiene una cadena como "Hello World", el elemento no se validará.
Con esquemas XML, también puede agregar sus propias restricciones a sus elementos y atributos XML. Estas restricciones se denominan facetas. Puede leer más sobre las facetas en el siguiente capítulo.