XSD (definición de esquema XML)

XSD (Definición de esquema XML) es una recomendación del World Wide Web Consortium (W3C) que especifica cómo describir formalmente los elementos en un documento XML (Extensible Markup Language). Esta descripción se puede utilizar para verificar que cada elemento de contenido de un documento se adhiera a la descripción del elemento en el que se colocará el contenido. XSD 1.1 se convirtió en un estándar W3C aprobado en abril de 2012.

XSD también se puede utilizar para generar documentos XML que pueden tratarse como objetos de programación. Además, una variedad de herramientas de procesamiento XML también pueden generar documentación legible por humanos, lo que facilita la comprensión de documentos XML complejos.

En general, un esquema es una representación abstracta de las características de un objeto y su relación con otros objetos. Un esquema XML representa la interrelación entre los atributos y elementos de un objeto XML (por ejemplo, un documento o una parte de un documento). El proceso de creación de un esquema para un documento implica analizar su estructura y definir cada elemento estructural encontrado. Por ejemplo, un esquema para un documento que describe un sitio web definiría un elemento de sitio web, un elemento de página web y otros elementos que describen posibles divisiones de contenido dentro de cualquier página de ese sitio. Al igual que en XML y HTML, los elementos se definen dentro de un conjunto de etiquetas.

XSD tiene varias ventajas sobre los lenguajes de esquema XML anteriores, como la definición de tipo de documento (DTD) o XML de objeto simple (SOX). XSD está escrito en XML, lo que significa que no requiere procesamiento intermedio por parte de un analizador. Otros beneficios incluyen la auto-documentación, la creación automática de esquemas y la capacidad de realizar consultas a través de Transformaciones XML (XSLT).

También existen muchos desafíos y limitaciones con XSD. Algunos detractores han argumentado que es innecesariamente complejo, carece de una descripción matemática formal y tiene un apoyo limitado para el contenido desordenado.