Esquema XML


Un esquema XML es una descripción de un tipo de documento XML , típicamente expresado en términos de restricciones en la estructura y contenido de documentos de ese tipo, más allá de las restricciones sintácticas básicas impuestas por el propio XML. Estas restricciones generalmente se expresan usando alguna combinación de reglas gramaticales que gobiernan el orden de los elementos, predicados booleanos que el contenido debe satisfacer, tipos de datos que gobiernan el contenido de elementos y atributos, y reglas más especializadas como restricciones de integridad referencial y unicidad .

Hay lenguajes desarrollados específicamente para expresar esquemas XML. El lenguaje de definición de tipo de documento (DTD), que es nativo de la especificación XML, es un lenguaje de esquema que tiene una capacidad relativamente limitada, pero que también tiene otros usos en XML además de la expresión de esquemas. Dos lenguajes de esquema XML más expresivos de uso generalizado son XML Schema (con una S mayúscula ) y RELAX NG .

El mecanismo para asociar un documento XML con un esquema varía según el lenguaje del esquema. La asociación se puede lograr mediante el marcado dentro del propio documento XML, o mediante algún medio externo.

El proceso de verificación para ver si un documento XML se ajusta a un esquema se llama validación , que es independiente del concepto central de XML de buen formato sintáctico . Todos los documentos XML deben estar bien formados, pero no se requiere que un documento sea válido a menos que el analizador XML esté "validando", en cuyo caso también se verifica que el documento cumpla con su esquema asociado. Los analizadores de validación de DTD son los más comunes, pero algunos también son compatibles con XML Schema o RELAX NG.


La validación de un documento de instancia frente a un esquema se puede considerar como una operación conceptualmente separada del análisis de XML. En la práctica, sin embargo, muchos validadores de esquemas están integrados con un analizador XML.

Hay varios lenguajes diferentes disponibles para especificar un esquema XML. Cada idioma tiene sus fortalezas y debilidades.