Saltar la navegación

3.- XML Schema

Caso práctico

Félix, quien considera que la normalización de los documentos XML que manejan en la empresa va a ser un duro trabajo para María, él y otros trabajadores inexpertos, plantea la posibilidad de que se encargue de ello algún trabajador de la consultoría informática que dirige Juan.

Al final se va a encargar de ello Marina. Les explica que, en lugar de trabajar con DTD's le parece mejor hacerlo con un lenguaje XML llamado XML Schema, el cual tiene, entre otras, la ventaja de permitir definir el tipo de datos de cada uno de los componentes de cada documento.

Fotografía de pantalla del ordenador donde se ve la página del grupo de trabajo del W3C que se ocupa de XML Schema.
psd - www.flickr.com (CC BY)

Los DTD permiten diseñar un vocabulario para ficheros XML, pero, ¿qué sucede cuando los valores de los elementos y atributos de esos ficheros han de corresponder a datos de un tipo determinado, o cumplir determinadas restricciones que no pueden reflejarse en los DTD? Para ello se definen XML Schemas.

¿También se definen en ficheros planos? Si, ya que son documentos XML, pero en este caso la extensión de los archivos es xsd, motivo por el cual también se les denomina documentos XSD.

Los elementos XML que se utilizan para generar un esquema han de pertenecer al espacio de nombre XML Schema, que es: http://www.w3.org/2001/XMLSchema.

El ejemplar de estos ficheros es <xs:schema>, contiene declaraciones para todos los elementos y atributos que puedan aparecer en un documento XML asociado válido. Los elementos hijos inmediatos de este ejemplar son <xs:element> que nos permiten crear globalmente un elemento. Esto significa que el elemento creado puede ser el ejemplar del documento XML asociado.

EJEMPLO

Vamos a crear un esquema correspondiente al siguiente documento XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes?>
<!DOCTYPE alumno>
<alumno edad="22">Olga Velarde Cobo</alumno>

Un XML Schema que podría ajustarse sería:

< ?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="alumno" type="xs:string"/>
</xs:schema>

Debes conocer

En este primer enlace encontrarás los fundamentos del estándar XML Schema.

XML Schema Fundamentos