x
1

Validación XML



La Validación XML (eXtensible Markup Language) es la comprobación de que un documento en lenguaje XML está bien formado y se ajusta a una estructura definida. Un documento bien formado sigue las reglas básicas de XML establecidas para el diseño de documentos. Un documento válido además respeta las normas dictadas por su DTD (definición de tipo de documento) o esquema utilizado.

En primer lugar, los documentos XML deben basarse en la sintaxis definida en la especificación XML para ser correctos (documentos bien formados). Esta sintaxis impone cosas como la coincidencia de mayúsculas/minúsculas en los nombres de etiqueta, comillas obligatorias para los valores de atributo, etc. Sin embargo, para tener un control más preciso sobre el contenido de los documentos es necesario un proceso de análisis más exhaustivo.

La validación es la parte más importante dentro de este análisis, ya que determina si un documento creado se ciñe a las restricciones descritas en el esquema utilizado para su construcción. Controlar el diseño de documentos a través de esquemas aumenta su grado de fiabilidad, consistencia y precisión, facilitando su intercambio entre aplicaciones y usuarios. Cuando creamos documentos XML válidos aumentamos su funcionalidad y utilidad.

La validación se encarga de verificar:

El éxito de la validación dependerá de factores como:

Especifica unas normas básicas a nivel de sintaxis, a cumplir por todos aquellos documentos con intención de denominarse XML. Las características básicas exigidas son:

Ejemplo:

Es posible trabajar con documentos no asociados a ninguna DTD y que en consecuencia jamás podrán ser validados. En este caso, los documentos sólo deberán estar bien formados, aunque siempre necesitarán la definición interna de las entidades utilizadas.

Son aquellos documentos que además de estar bien formados, cumplen las especificaciones de la DTD (Document Type Definition), del Schema, o del elemento que lo valide, y siguen las pautas marcadas por sus modelos de contenido. No hay esquemas de documentos idénticos, por eso es difícil concretar las reglas que deben cumplir.

Para que un documento XML también sea válido, durante el proceso de validación se comprueba:

Ejemplo que cumple las especificaciones de DTD:

Existen varios métodos para validar los documentos XML. Los métodos más usados son la DTD de XML versión 1.0, el XML Schema de W3C, RELAX NG de Oasis y Schematron de la Academia Sinica Computing Centre.

La DTD es el formato de esquema nativo (y el más antiguo) para validar documentos XML, heredado de SGML. Utiliza una sintaxis no-XML para definir la estructura o modelo de contenido de un documento XML válido:

Es el método más sencillo usado para validar, y por esta razón presenta varias limitaciones, ya que no soporta nuevas ampliaciones de XML y no es capaz de describir ciertos aspectos formales de un documento a nivel expresivo.

Las DTD pueden ser internas o externas a un documento XML, o ambas cosas a la vez.

XML Schema es la evolución de la DTD descrita por el W3C, también llamado de forma más informal XSD (XML Schema Definition). Es un lenguaje de esquema más complejo y más potente, basado en la gramática para proporcionar una potencia expresiva mayor que la DTD. Utiliza sintaxis XML, cosa que le permite especificar de forma más detallada un extenso sistema de tipos de datos. A diferencia de las DTDs, soporta la extensión del documento sin problemas.

A la hora de validar, la utilización de XSD supone un gran consumo en recursos y tiempo debido a su gran especificación y complejidad en la sintaxis (esquemas más difíciles de leer y escribir).

Después de validar el documento con XML Schema, es posible expresar su estructura y contenido en términos del modelo de datos usado por el esquema de validación. Esta funcionalidad, conocida como Post-Schema-Validation Infoset (PSVI), se puede utilizar para transformar el documento en una jerarquía de objetos, a los cuales se puede acceder a través de un lenguaje de programación orientada a objetos (OOP). El modelo de datos de XML Schema incluye:

RELAX NG es también un lenguaje de esquema basado en la gramática, muy intuitivo y más fácil de entender que el XML Schema. De ahí su popularidad. Tiene un alto poder expresivo, por ejemplo permite validar elementos intercalados que pueden aparecer en cualquier orden.

Las aplicaciones de definición de documentos y validación para RELAX NG son más sencillas que en XML Schema, haciéndolo más fácil de utilizar e implementar. También tiene la capacidad de usar plug-ins de definiciones de tipos de dato de XML Schema, combinando así las ventajas de ambos lenguajes. RELAX NG se ha convertido recientemente en un estándar ISO como la parte 2 de DSDL (Document Schema Definition Language).

Schematron, a diferencia de los anteriores lenguajes, se basa en afirmaciones en vez de en la gramática. Al basarse en una serie de reglas, utiliza expresiones de acceso en lugar de gramaticales para definir lo que se permite en un documento XML. Si el documento cumple estas reglas, entonces es válido.

Este método de validación aporta una gran flexibilidad en la descripción de estructuras relacionales. En cambio, es un lenguaje muy limitado a la hora de especificar la estructura básica del documento, problema que se soluciona combinando Schematron con otros lenguajes de esquema.

Junto con RELAX NG, Schematron se está estandarizando como parte del DSDL de ISO

La creación manual de documentos XML e incluso su manipulación pueden introducir todo tipo de errores, tipográficos, sintácticos y de contenido. Existen editores de XML que facilitan la tarea de crear documentos válidos y bien formados, ya que pueden advertir de los errores básicos cometidos e incluso escribir automáticamente la sintaxis más sencilla necesaria.

Cuando necesitamos obtener un documento válido, el editor XML ha de ser capaz de:

Editores:

Los documentos XML se procesan a través de analizadores, aplicaciones que leen el documento, lo interpretan y generan una salida basada en sus contenidos y en la marca utilizada para su descripción. El resultado se muestra en un dispositivo de visualización, como una ventana de navegación o una impresora. Los procesadores hacen posible la presentación y distribución de documentos XML.

Estos analizadores pueden tener o no la capacidad de validar: todos los analizadores comprueban que los documentos XML estén bien formados, pero solo los analizadores validantes pueden efectuar la validación. Los analizadores no validantes procesan a mayor velocidad, ya que no tienen que comprobar tantos detalles como los validantes.

Casi todos los procesadores de XML son capaces de validar con un esquema basado en DTD. Si el documento viola alguna de las reglas de su DTD, el analizador advertirá del error y el proceso del documento se detendrá. Un buen procesador validante no solo informará la presencia de un error, sino que elaborará un mensaje especificando cuál ha sido su causa. También existe el procesador Xerces de Apache que, además de ser el más completo parser de XML, incluye soporte de XML Schema.

Habitualmente, se usa un analizador validante para comprobar la corrección de los documentos, y uno no validante para su presentación. Una vez que se sabe que un documento es válido, no hay ningún motivo para comprobar su validez cada vez que se procese (optimizando así el tiempo del proceso).

Procesadores:

DTD:

XML Schema:

RELAX NG:

Schematron:

Validar archivos en línea:



Escribe un comentario o lo que quieras sobre Validación XML (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!