esquema XML


Un esquema XML es una descripción de un tipo de documento XML , normalmente 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 mismo XML. Estas restricciones generalmente se expresan mediante una combinación de reglas gramaticales que rigen el orden de los elementos, predicados booleanos que el contenido debe satisfacer, tipos de datos que rigen el contenido de elementos y atributos, y reglas más especializadas, como restricciones de unicidad e integridad referencial .

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 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 a través del marcado dentro del propio documento XML, oa través de algún medio externo.

El proceso de verificar si un documento XML se ajusta a un esquema se llama validación , que es independiente del concepto central de XML de la buena formación sintáctica . 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 la conformidad del documento con su esquema asociado. Los analizadores de validación de DTD son los más comunes, pero algunos también admiten XML Schema o RELAX NG.


La validación de un documento de instancia contra un esquema se puede considerar como una operación conceptualmente separada del análisis 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.