stringtranslate.com

Esquema XML (W3C)

XSD ( Definición de esquema XML ), una recomendación del World Wide Web Consortium ( W3C ), especifica cómo describir formalmente los elementos en un documento de lenguaje de marcado extensible ( XML ). Los programadores pueden utilizarlo para verificar cada elemento del contenido de un documento, para garantizar que se ajuste a la descripción del elemento en el que se encuentra. [1]

Como todos los lenguajes de esquema XML , XSD se puede utilizar para expresar un conjunto de reglas que debe cumplir un documento XML para ser considerado "válido" según ese esquema. Sin embargo, a diferencia de la mayoría de los otros lenguajes de esquema, XSD también se diseñó con la intención de que la determinación de la validez de un documento produzca una colección de información que se adhiera a tipos de datos específicos . Un conjunto de información posterior a la validación puede resultar útil en el desarrollo de software de procesamiento de documentos XML.

Historia

XML Schema , publicado como recomendación del W3C en mayo de 2001, [2] es uno de varios lenguajes de esquemas XML . Fue el primer lenguaje de esquema independiente para XML que alcanzó el estado de Recomendación del W3C. Debido a la confusión entre XML Schema como una especificación específica del W3C y el uso del mismo término para describir lenguajes de esquemas en general, algunas partes de la comunidad de usuarios se refirieron a este lenguaje como WXS , una inicialización de W3C XML Schema, mientras que otras se refirieron a como XSD , una inicial de Definición de esquema XML. [3] [4] En la versión 1.1, el W3C ha optado por adoptar XSD como nombre preferido, y ese es el nombre utilizado en este artículo.

En su apéndice de referencias, la especificación XSD reconoce la influencia de las DTD y otros esfuerzos iniciales de esquemas XML como DDML , SOX , XML-Data y XDR . Ha adoptado características de cada una de estas propuestas, pero también es un compromiso entre ellas. De esos lenguajes, XDR y SOX continuaron utilizándose y admitiéndose durante un tiempo después de la publicación de XML Schema. Varios productos de Microsoft admitieron XDR hasta el lanzamiento de MSXML 6.0 (que eliminó XDR en favor de XML Schema) en diciembre de 2006. [5] Commerce One , Inc. admitió su lenguaje de esquema SOX hasta que se declaró en quiebra a finales de 2004.

Las características más obvias ofrecidas en XSD que no están disponibles en las definiciones de tipos de documentos (DTD) nativas de XML son el conocimiento del espacio de nombres y los tipos de datos, es decir, la capacidad de definir elementos y atributos que contienen valores como números enteros y fechas en lugar de texto arbitrario.

La especificación XSD 1.0 se publicó originalmente en 2001, seguida de una segunda edición en 2004 para corregir una gran cantidad de errores. XSD 1.1 se convirtió en una recomendación del W3C en abril de 2012.

Esquemas y documentos de esquema.

Técnicamente, un esquema es una colección abstracta de metadatos, que consta de un conjunto de componentes del esquema : principalmente declaraciones de elementos y atributos y definiciones de tipos simples y complejas. Estos componentes generalmente se crean procesando una colección de documentos de esquema , que contienen las definiciones del idioma fuente de estos componentes. Sin embargo, en el uso popular, un documento de esquema suele denominarse esquema.

Los documentos de esquema están organizados por espacio de nombres: todos los componentes del esquema nombrados pertenecen a un espacio de nombres de destino, y el espacio de nombres de destino es una propiedad del documento de esquema en su conjunto. Un documento de esquema puede incluir otros documentos de esquema para el mismo espacio de nombres y puede importar documentos de esquema para un espacio de nombres diferente.

Cuando un documento de instancia se valida con un esquema (un proceso conocido como evaluación ), el esquema que se utilizará para la validación se puede proporcionar como parámetro al motor de validación o se puede hacer referencia a él directamente desde el documento de instancia utilizando dos atributos especiales. , xsi:schemaLocationy xsi:noNamespaceSchemaLocation. (Este último mecanismo requiere que el cliente que invoca la validación confíe en el documento lo suficiente como para saber que se está validando con el esquema correcto. "xsi" es el prefijo convencional para el espacio de nombres "http://www.w3.org/2001/XMLSchema -instancia".)

Los documentos de esquema XML suelen tener la extensión de nombre de archivo ".xsd". Aún no se ha registrado un tipo de medio de Internet único para XSD, por lo que se debe utilizar "application/xml" o "text/xml", según RFC 3023.

Componentes del esquema

Los principales componentes de un esquema son:

Otros componentes más especializados incluyen anotaciones, afirmaciones, notaciones y el componente de esquema que contiene información sobre el esquema en su conjunto.

Tipos

Los tipos simples (también llamados tipos de datos) restringen los valores textuales que pueden aparecer en un elemento o atributo. Esta es una de las diferencias más significativas entre el esquema XML y las DTD. Por ejemplo, un atributo podría estar obligado a contener sólo una fecha válida o un número decimal.

XSD proporciona un conjunto de 19 tipos de datos primitivos ( anyURI,,,,,,,,,,,,,,,,,,,,,,,, y ) .​​​​​​ ​Permite construir nuevos tipos de datos a partir de estas primitivas mediante tres mecanismos:base64BinarybooleandatedateTimedecimaldoubledurationfloathexBinarygDaygMonthgMonthDaygYeargYearMonthNOTATIONQNamestringtime

Se definen veinticinco tipos derivados dentro de la propia especificación, y los usuarios pueden definir más tipos derivados en sus propios esquemas.

Los mecanismos disponibles para restringir los tipos de datos incluyen la capacidad de especificar valores mínimos y máximos, expresiones regulares, restricciones en la longitud de las cadenas y restricciones en el número de dígitos en valores decimales. XSD 1.1 nuevamente agrega aserciones, la capacidad de especificar una restricción arbitraria mediante una expresión XPath 2.0 .

Los tipos complejos describen el contenido permitido de un elemento, incluidos sus elementos y elementos secundarios de texto y sus atributos. Una definición de tipo complejo consta de un conjunto de usos de atributos y un modelo de contenido. Las variedades de modelos de contenido incluyen:

Un tipo complejo puede derivarse de otro tipo complejo por restricción (no permitiendo algunos elementos, atributos o valores que el tipo base permite) o por extensión (permitiendo que aparezcan atributos y elementos adicionales). En XSD 1.1, un tipo complejo puede estar restringido por aserciones: expresiones XPath 2.0 evaluadas contra el contenido que debe evaluarse como verdadero.

Conjunto de información posterior a la validación del esquema

Después de la validación basada en esquemas XML, es posible expresar la estructura y el contenido de un documento XML en términos del modelo de datos implícito durante la validación. El modelo de datos del esquema XML incluye:

Esta recopilación de información se denomina conjunto de información posterior a la validación del esquema (PSVI). El PSVI le da a un documento XML válido su "tipo" y facilita el tratamiento del documento como un objeto, utilizando paradigmas de programación orientada a objetos (OOP).

Usos secundarios de los esquemas XML

La razón principal para definir un esquema XML es describir formalmente un documento XML; sin embargo, el esquema resultante tiene otros usos que van más allá de la simple validación.

Codigo de GENERACION

El esquema se puede utilizar para generar código, denominado enlace de datos XML . Este código permite que el contenido de los documentos XML se trate como objetos dentro del entorno de programación.

Generación de documentación de estructura de archivos XML.

El esquema se puede utilizar para generar documentación legible por humanos de una estructura de archivo XML; Esto es especialmente útil cuando los autores han hecho uso de los elementos de anotación. No existe un estándar formal para la generación de documentación, pero hay varias herramientas disponibles, como la hoja de estilo Xs3p, que producirán HTML y material impreso legible de alta calidad.

Crítica

Aunque XML Schema tiene éxito porque ha sido ampliamente adoptado y logra en gran medida lo que se propuso, ha sido objeto de muchas críticas severas, quizás más que cualquier otra recomendación del W3C. James Clark, [6] Anders Møller y Michael Schwartzbach, [7] Rick Jelliffe [8] y David Webber proporcionan buenos resúmenes de las críticas . [9]

Problemas generales:

Limitaciones prácticas de expresabilidad:

Problemas técnicos:

Versión 1.1

XSD 1.1 se convirtió en una recomendación del W3C en abril de 2012, lo que significa que es una especificación aprobada por el W3C.

Las nuevas características importantes de XSD 1.1 son:

Hasta el borrador de la Recomendación propuesta, XSD 1.1 también proponía la adición de un nuevo tipo de datos numéricos, precisionDecimal. Esto resultó controvertido y, por lo tanto, se eliminó de la especificación en una etapa avanzada del desarrollo.

Ver también

Referencias

  1. ^ "Definición XSD (definición de esquema XML)" TechTarget, consultado el 10 de junio de 2014
  2. ^ "Cronología de los estándares XML y Web Semántica W3C" (PDF) . 2012-02-04.
  3. ^ Ver esquema - W3C
  4. ^ Consulte Lenguaje de definición de esquemas XML (XSD) 1.1 del W3C, parte 1: estructuras
  5. ^ "Eliminación de la compatibilidad con esquemas XDR en MSXML 6.0" . Consultado el 19 de septiembre de 2010 .
  6. ^ Resumen de James Clark de las críticas al esquema XML y promoción de RELAX NG como alternativa, https://web.archive.org/web/20150316212413/http://www.imc.org/ietf-xml-use/mail- archivo/msg00217.html
  7. ^ Anders Møller y Michael I. Schwartzbach presentan "Problemas con el esquema XML", http://cs.au.dk/~amoeller/XML/schemas/xmlschema-problems.html
  8. ^ Crítica de Rick Jelliffe en mayo de 2009, https://web.archive.org/web/20090516232816/http://broadcast.oreilly.com/2009/05/w3c-please-put-xsd-11-on-hold. HTML
  9. ^ Informe técnico sobre ideas y comparaciones de David Webber OASIS de agosto de 2008, http://www.oasis-open.org/committees/download.php/29164/White%20Paper%20on%20CAM%20and%20XSD.pdf
  10. ^ Este punto es ampliado por Uche Ogbuji Más sobre la guerra de clases XML - Blog de O'Reilly ONLamp

Otras lecturas

enlaces externos

Especificación del esquema XML 1.0 del W3C

Especificación del esquema XML 1.1 del W3C

Otro