XML Schema
XSD (XML Schema Definition) es un lenguaje de esquema utilizado para describir la estructura y las restricciones de los contenidos de los documentos XML de una forma muy precisa, mas alla de las normas sintacticas impuestas por el propio lenguaje XML. Se consigue asi una percepcion del tipo de documento con un nivel alto de abstraccion. Fue desarrollado por el World Wide Web Consortium (W3C) y alcanzo el nivel de recomendacion en mayo de 2001.
Terminologia
[editar]El termino "XML Schema" es utilizado con varios significados dentro del mismo contexto de descripcion de documentos, y es importante tener en cuenta las siguientes consideraciones:
- "XML Schema" (Esquema XML) es el nombre oficial otorgado a la recomendacion del W3C, que elaboro el primer lenguaje de esquema separado de XML (la definicion de tipo de documentos (DTD) forma parte de XML).
- Es habitual referirse a los esquemas como "XML schema" de forma generica, pero se recomienda utilizar el termino "documento esquema" (schema document) o "definicion de esquema"(schema definition), y reservar "XML Schema" para la denominacion de este lenguaje especifico.
- Aunque genericamente se utilice "XML schemas", XSDL (XML Schema Definition Language) es el nombre tecnico de los lenguajes de esquema de XML como:
- Definicion de Tipo de Documento (DTD)
- XML Schema
- RELAX NG
- Schematron
- Namespace Routing Language (NRL)
- Document Schema Definition Languages (DSDL)
- Document Definition Markup Language (DDML)
- Document Structure Description (DSD)
- SGML
- Schema for Object-Oriented XML (SOX)
W3C Schema XML
[editar]El World Wide Web Consortium (W3C) empezo a trabajar en XML Schema en 1998. La primera version se convirtio en una recomendacion oficial en mayo de 2001. Una segunda edicion revisada esta disponible desde octubre de 2004.
Esta recomendacion esta desarrollada en tres partes:
- XML Schema Parte 0 Primer: es una introduccion no normativa al lenguaje, que proporciona una gran cantidad de ejemplos y explicaciones detalladas para una primera aproximacion a XML Schema.
- XML Schema Parte 1 Structures: es una extensa descripcion de los componentes del lenguaje.
- XML Schema Parte 2 Datatypes: complementa la Parte 1 con la definicion de los tipos de datos incorporados en XML Schema y sus restricciones.
(vease Enlaces externos)
Componentes
[editar]XML Schema es un lenguaje de esquema escrito en XML, basado en la gramatica y pensado para proporcionar una mayor potencia expresiva que las DTD, menos capaces al describir los documentos a nivel formal.
Los documentos esquema (usualmente con extension .xsd de XML Schema Definition (XSD)) se concibieron como una alternativa a las DTD, mas complejas, intentando superar sus puntos debiles y buscar nuevas capacidades a la hora de definir estructuras para documentos XML. El principal aporte de XML Schema es el gran numero de tipos de datos que incorpora. De esta manera, XML Schema aumenta las posibilidades y funcionalidades de aplicaciones de procesado de datos, incluyendo tipos de datos complejos como fechas, numeros y strings.
Tipos de componentes
[editar]Los esquemas XML Schema superan muchas de las limitaciones y debilidades de las DTDs. Fue disenado completamente alrededor de namespaces y soporta tipos de datos tipicos de los lenguajes de programacion, como tambien tipos personalizados simples y complejos. Un esquema se define pensando en su uso final.
Namespaces
[editar]La programacion en Schema XML se basa en namespaces o espacios de nombres. Podemos encontrar una analogia entre estos y los llamados packages en Java. Cada namespace contiene elementos y atributos que estan estrechamente relacionados con el namespace. Asi, a la hora de definir un elemento o un atributo de un namespace, siempre se creara una conexion entre los diferentes campos de este. Ademas, esta forma de trabajar nos permite relacionar elementos que no estan en el mismo namespace.
Despues de escribir un Schema XML se puede confirmar la correcta realizacion mediante la validacion de esquemas XML: Validacion XML.5623
Ejemplo
[editar]Un ejemplo de la estructura de un documento esquema vacio seria el siguiente:
Un ejemplo de definicion con XML Schema seria el siguiente:
Podemos ver como en ambos casos se inician las declaraciones indicando la version de XML que se va a utilizar y la codificacion que se usa. Estos dos campos son necesarios para poder interpretar el esquema.
En la siguiente linea de codigo se declara el elemento schema, raiz del documento de definicion de esquema. Ademas se declara el espacio de nombres en el que viven los nombres de los elementos del documento. Esta definicion de esquema dictamina que cualquier documento XML que este en conformidad con el, debera tener un elemento raiz que se llame "Libro" el cual tendra tres hijos (elementos anidados) y un atributo. Los hijos son "Titulo", "Editorial" que deben aparecer una vez y "Autores" que puede aparecer de una a diez veces. El hecho de que esten agrupados en una secuencia indica que los elementos deben aparecer en orden, es decir, primero el "Titulo", luego los "Autores" y por ultimo la "Editorial". Los tres elementos son de tipo string. El atributo de libro se llama "precio" y es de tipo double.
Vease tambien
[editar]Tutoriales
[editar]- Tutorial en linea con ejemplos (en ingles)
- Tutorial de XSD para principiantes -- Teoria, ejemplos y ejercicios resueltos con Licencia Creative Commons.
- Explicacion y uso de Namespaces
- Validacion de Schema XML
Enlaces externos
[editar]- Esquemas en el sitio de World Wide Web Consortium (en ingles)
- XML Schema Part 0 Primer
- XML Schema Part 1 Structures
- XML Schema Part 2 Datatypes
- Programa de verificacion del Schema
- Herramientas adicionales para trabajar con Schema XML
- Datos: Q16342