XML Schema. Sergio Luján Mora. sergio.lujan@ua.es http://gplsi.dlsi.ua.es/~slujan/



Documentos relacionados
XML, parte 3. M. en C. Erika Vilches

Capítulo 3: XML Spy como editor de documentos XML. 2. La interfaz de usuario de XML Spy

XML Namespaces. Sergio Luján Mora.

Validación de un XML

Sistemas de Información 12/13 XML (extensible Mark-up Language)

Creación de documentos XML

Fundamentos de las tecnologías de la información

XML para FP : Introducción

ESQUEMAS INTRODUCCION A LA VALIDACIÓN DE DOCUMENTOS MEDIANTE ESQUEMAS. 7.3 Partes importantes de los esquemas Repeticiones de elementos

Introducción a Visual Studio.Net

Datos Estadísticos y el Lenguaje XML

XML-Schema. XML-Schema. Espacios de Nombre. W3C XML Schema intenta superar las limitaciones de las DTDs con respecto a ellos

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

Introducción a XML - Validación y Parseo. Huibert Aalbers, Senior Certified Software IT Architect

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

Práctica 4 Manejo avanzado de Bison

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

El proceso de edición digital en Artelope y CTCE

3.1 Tipos de DTDs. ! Si queremos validar un documento XML (para comprobar si cumple las normas de un dialecto) tendremos que validarlo contra el DTD.

Manual de configuración de Adobe Reader para la validación de la firma de un documento Versión 1.0

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

Microsoft Excel Unidad 6. La Hoja de Cálculo

PLANES DE EMPRESA ICEX CONSOLIDA. Manual de Usuario

XML Schema. Definición y validación

EDICIÓN Y FORMATO (II)

La ventana de Microsoft Excel

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

Instructivo de Microsoft Excel 2003

MANUAL BÁSICO DE WRITER

extensible Markup Language (XML)

Gestión de usuarios en la web educativa del centro con JOOMLA!

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes

MICROSOFT ACCESS 2003

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Lectura de datos. Marcelo Reyes Notas sobre gretl 1.8.6cvs

XML. Introducción. Cómo se usa? XML Tree. Sintaxis XML

Análisis de esquemas XML [1]

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

13.2 WORLD WIDE WEB (www)

Modelado de datos XML: XML-Schema

GUÍA BÁSICA DE USO DEL SISTEMA RED

Instructivo: Alumnos WEB

Microsoft Access 2007 (Completo)

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

Conceptos Generales en Joomla

A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones avanzadas de Excel II

SIIT SISTEMA INFORMÁTICO DE INSPECCIONES DE TRABAJO. Modulo de Planificación Manual de Usuario

5.8. REGISTRO DE FACTURAS.

Componente com_weblinks para listados de enlaces web a modo de directorio en Joomla. (CU00442A)

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Manual de usuario de Solmicro BI. Página 1

MICROSOFT ACCESS 2010

JHAN EVER ANDRADE CASTRO

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

Manual Usuario Wordpress. Índice

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

Bienvenido al sistema de Curriculum Digital CVDigital

Otros tipos de Consultas

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

GENERACIÓN DE ANTICIPOS DE CRÉDITO

OBTENER DATOS EXTERNOS

Manual de suscripción a fuentes RSS.

Transformación de documentos XML con

Dominios y Subtipos en Geodatabase

Manual Instalación de certificados digitales en Outlook 2000

Combinar comentarios y cambios de varios documentos en un documento

NORMA (SEPA) 22/11/2013

Usuarios y Permisos. Capítulo 12

MACROS Y FORMULARIOS

FUNDACION EDUCATIVA OBRERA FUNEDO TECNICO EN SECRETARIADO EJECUTIVO SISTEMATIZADO

Centro de Capacitación en Informática

UTILIZACION DE ESQUEMAS XML DE LA AGENCIA TRIBUTARIA PARA CALCULO RETENCIONES

1. CONFIGURACIÓN PREVIA A LA GENERACIÓN DE LOS INFORMES

Versión 1.0 MANUAL DEL USUARIO

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

Bibliotecas Escolares.

Un botón puede tener hasta cuatro estados diferentes. Cada estado representa el aspecto del botón en respuesta a un evento del ratón:

Elementos de Microsoft Word

BrowserSQL 4 versión 2 - TUTORIAL

Manual de Empleo de Herramienta de Subtitulado Jubler

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Antivirus Avira. Inguralde [Enero 2011]

NOVEDADES Y MEJORAS. datahotel versión 9.00 TRABAJAR CON I.V.A INCLUIDO

INSTALACIÓN DE GOLDMINE PREMIUM PASO A PASO CREACIÓN DE UNA NUEVA BASE DE DATOS EN GOLDMINE PREMIUM PASO A PASO

Con este programa pueden abrirse formatos sencillos de texto (como TXT) y editarlos de manera básica.

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Figura 1 Abrir nueva hoja de cálculo

Dando nuestros primeros pasos con 3DS Max. 1. Objetivos

Estructurar la información dentro del ordenador:

2. ABRIR UN NUEVO DOCUMENTO DE TRABAJO

Práctica 2 de Microsoft Access

BASE DE DATOS RELACIONALES

INTRODUCCIÓN A LAS BASES DE DATOS

Configuración de DNS seguros

Direccionamiento IPv4

Transcripción:

XML Schema Sergio Luján Mora sergio.lujan@ua.es http://gplsi.dlsi.ua.es/~slujan/ 1

XML SCHEMA... 3 Introducción... 3 Ventajas... 3 Qué necesito para usar XML Schema... 4 Diseño de un documento XML... 5 El primer XML Schema... 9 Tipos de datos... 13 XML Spy 2004... 13 Conversión de DTD a XML Schema... 19 2

XML Schema Introducción XML Schema Definition Language (XSDL) es un estándar del World Wide Web Consortium (W3C) que permite describir la estructura y el contenido de un documento XML. Se trata, por tanto, de una tecnología similar a Document Type Definition (DTD), pero mucho más potente y versátil. Durante un tiempo es de esperar que convivan ambas tecnologías, ya que existen muchos sistemas actuales que se han desarrollado sobre DTD y su uso es más sencillo que XML Schema. Además de XML Schema, se han desarrollado otras tecnologías para definir esquemas de documentos XML, como Document Content Description for XML 1 (DCD), XML Data Reduce 2 (XDR), XML-Data 3, y BizTalk. Ventajas XML Schema ofrece múltiples ventajas frente a DTD: 1. Tipado fuerte. En un DTD, las posibilidades de limitar el contenido de un elemento o un atributo son limitadas. Por ejemplo, un elemento se puede definir como EMPTY, ANY, un modelo de grupo o contenido mixto (elementos y texto). Pero no hay forma de especificar que el contenido de un elemento tiene que ser un entero o que no puede exceder un cierto 1 Disponible en http://www.w3.org/tr/1998/note-dcd-19980731.html. 2 Disponible en http://www.ltg.ed.ac.uk/~ht/xmldata-reduced.htm. 3 Disponible en http://www.w3.org/tr/1998/note-xml-data-0105/. 3

número de caracteres. XML Schema supera las limitaciones de DTD que no permite especificar, por ejemplo, que un elemento debe contener un número entero y no una cadena de caracteres. 2. Tipos de datos similares a los lenguajes de programación y bases de datos. XML Schema incluye una serie de tipos de datos básicos similares a los que se puede encontrar en los lenguajes de programación o en la bases de datos relacionales u orientadas a objetos. Pero además, el usuario puede definir sus propios tipos de datos a partir de los existentes. 3. Permite controlar con precisión el número de repeticiones. En un DTD, la repetición de un elemento se describe con los siguientes modificadores: nada para una sola vez,? para cero o una vez, * para cero o más veces y + para una o más veces. En XML Schema se puede especificar cualquier valor para el número de ocurrencias mínimo o máximo. 4. Un XML Schema es un documento XML. Un DTD se escribe mediante una notación que no tiene nada que ver con la sintaxis de un documento XML. Sin embargo, un XML Schema es un documento XML válido, por lo que se pueden emplear con él todas las herramientas desarrolladas para trabajar con XML. 5. Verdadera representación de claves primarias y ajenas. Con DTD, si se quiere representar una base de datos en un documento XML, la única forma de especificar claves primarias y ajenas es con los tipos ID e IDREF. Sin embargo, presenta dos graves inconvenientes: ID tiene que ser único en todo el documento (en una base de datos, una clave primaria se puede repetir en distintas tablas) e IDREF tiene que referenciar un ID dentro del propio documento, pero no se puede especificar el tipo de elemento (puede ser una clave ajena a cualquier tabla). Con XML Schema, estos conceptos se pueden representar sin problemas. Qué necesito para usar XML Schema No es necesario un servidor web, un proveedor web o tener una conexión a Internet para empezar a escribir XML Schema. Todo lo que se necesita es un editor (como el Bloc de notas de Windows) para crear los esquemas y los correspondientes documentos XML. Sin embargo, si se quiere comprobar el funcionamiento de los esquemas, hace falta un motor que valide documentos XML a partir de su XML Schema. 4

Algunos de los navegadores actuales (por ejemplo, Microsoft Internet Explorer) permiten validar un documento XML contra su DTD, pero ninguno permite validarlo contra su XML Schema. Por tanto, vamos a emplear el programa Altova XML Spy 4 (múltiples versiones). Se trata de un entorno de desarrollo integrado para XML, que permite editar y validar documentos XML, editar y validar DTDs y esquemas de XML y editar XSL y transformar documentos. Es un programa de pago, pero dispone de versión de demostración. La extensión de un XML Schema suele ser.xsd. Se deben emplear nombres cortos y sencillos. Hay que evitar el uso de espacios o de caracteres especiales en el nombre del archivo y también controlar el uso de mayúsculas y minúsculas puesto que en Internet existen multitud de sistemas operativos, que no pueden aceptar los mismos nombres de archivo que acepta el nuestro. Por ejemplo, hay sistemas operativos en los que las mayúsculas y minúsculas se distinguen y otros donde no. Diseño de un documento XML En la actualidad, el principal uso que se le da a XML es como medio de integración entre distintas aplicaciones. La integración de XML con los sistemas gestores de bases de datos relacionales (SGBDR) es cada vez mayor y XML se ha convertido en la lingua franca para traspasar información de una aplicación a otra. Tanto XML como las bases de datos relacionales se asocian con la representación de entidades (objetos) de negocio, pero lo hacen de forma diferente, tal como se muestra en la siguiente tabla. SGBDR XML Entidad Tabla Documento Instancia de entidad Fila Elemento Atributo de entidad Columna Atributo Valor de elemento Subelemento 4 Disponible en http://www.xmlspy.com/. 5

La principal diferencia entre SGBDR y XML reside en la representación de las características (atributos) de una entidad. En un SGBDR, las características de la entidad se reprendan por columnas de una tabla. En un documento XML, las características pueden ser atributos, valores de elemento o subelementos. Por ejemplo, la siguiente tabla relacional se puede representar de distintas formas mediante XML: Figura 1 Para representar esta tabla en XML, se podría crear un documento XML llamado Libros con dos elementos Libro. Las columnas podrían representarse centradas en el atributo de forma que las columnas de una tabla se asocian a los atributos de un documento XML, como se muestra en el siguiente ejemplo: <Libros> <Libro IdLibro= 1 Titulo= XML en 10 minutos EdtNombre= Libros de bolsillo Anyo= 2003 /> <Libro IdLibro= 2 Titulo= Los secretos de XML al descubierto EdtNombre= El escritor Anyo= 2003 /> </Libros> Como alternativa, se podría utilizar una relación centrada en el elemento. En esta relación, se devuelven todas las columnas como subelementos del elemento representado en la tabla a la que pertenece, como se muestra en el siguiente ejemplo: <Libros> <Libro> <IdLibro>1</IdLibro> <Titulo>XML en 10 minutos</titulo> <EdtNombre>Libros de bolsillo</edtnombre> 6

<Anyo>2003</Anyo> </Libro> <Libro> <IdLibro>2</IdLibro> <Titulo>Los secretos de XML al descubierto</titulo> <EdtNombre>El escritor</edtnombre> <Anyo>2003</Anyo> </Libro> </Libros> Por último, también se podrían mezclar ambas aproximaciones: <Libros> <Libro IdLibro= 1 > XML en 10 minutos <EdtNombre>Libros de bolsillo</edtnombre> <Anyo>2003</Anyo> </Libro> <Libro IdLibro= 2 > Los secretos de XML al descubierto <EdtNombre>El escritor</edtnombre> <Anyo>2003</Anyo> </Libro> </Libros> En este ejemplo se utilizan las tres formas de representar las características de una entidad. IdLibro se representa como un atributo, Titulo se representa como el valor del elemento que representa la instancia de la entidad, y EdtNombre y Anyo como subelementos. Normalmente, la asociación de columnas de una base de datos a un tipo de estructura XML es un tema de estilo, aunque hay que tener en cuenta un par de consideraciones. Los documentos centrados en atributos dan como resultado cadenas XML más pequeñas, así que para grandes cantidades de datos resultan más eficientes. Sin embargo, cada elemento puede tener únicamente uno de esos atributos. Los subelementos resultan útiles para características que puedan llegar a 7

contener varios valores. Por ejemplo, en el código de ejemplo anterior, no se ha representado el autor porque puede tener más de uno: <Libros> <Libro IdLibro= 1 > XML en 10 minutos <Autor>Sergio Luján Mora</Autor> <Autor>Jaume Aragonés Ferrero</Autor> <EdtNombre>Libros de bolsillo</edtnombre> <Anyo>2003</Anyo> </Libro> <Libro IdLibro= 2 > Los secretos de XML al descubierto <Autor>Sergio Luján Mora</Autor> <EdtNombre>El escritor</edtnombre> <Anyo>2003</Anyo> </Libro> </Libros> También se podría haber decidido agrupar todos los autores bajo un mismo elemento, tal como se muestra en el siguiente ejemplo: <Libros> <Libro IdLibro= 1 > XML en 10 minutos <Autores> <Autor>Sergio Luján Mora</Autor> <Autor>Jaume Aragonés Ferrero</Autor> </Autores> <EdtNombre>Libros de bolsillo</edtnombre> <Anyo>2003</Anyo> </Libro> <Libro IdLibro= 2 > Los secretos de XML al descubierto <Autores> <Autor>Sergio Luján Mora</Autor> </Autores> 8

<EdtNombre>El escritor</edtnombre> <Anyo>2003</Anyo> </Libro> </Libros> El primer XML Schema Vamos a definir un XML Schema para el siguiente documento XML. Para ello, vamos a seguir un método incremental. <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE BIBLIOTECA SYSTEM "biblioteca.dtd"> <BIBLIOTECA> <LIBRO COD="1"> <TITULO>XML para todos</titulo> <AUTOR>Sergio Lujan Mora</AUTOR> <ANYO>2001</ANYO> <EDITORIAL>UA Prensa</EDITORIAL> </LIBRO> <LIBRO COD="11"> <TITULO>Como aprobar una oposición</titulo> <AUTOR>Marisa Zayas Fornieles</AUTOR> <AUTOR>Sergio Lujan Mora</AUTOR> <ANYO>1999</ANYO> <EDITORIAL>Prensa Editorial</EDITORIAL> </LIBRO> </BIBLIOTECA> El DTD de este documento es: <!ELEMENT BIBLIOTECA (LIBRO+)> <!ELEMENT LIBRO (TITULO, AUTOR*, ANYO?, EDITORIAL?)> <!ATTLIST LIBRO COD CDATA #REQUIRED> <!ELEMENT AUTOR (#PCDATA)> <!ELEMENT TITULO (#PCDATA)> <!ELEMENT EDITORIAL (#PCDATA)> <!ELEMENT ANYO (#PCDATA)> 9

Un esquema para este documento se puede escribir simplemente siguiendo la estructura del documento y definiendo cada elemento conforme se encuentran. Un XML Schema es un documento XML con la siguiente estructura básica (el elemento raíz es xs:schema): <?xml version= 1.0 encoding= UTF-8?> <xs:schema xmlns:xs= http://www.w3.org/2001/xmlschema >...... </xs:schema> Para el elemento raíz del documento (BIBLIOTECA), definimos un elemento llamado BIBLIOTECA. Este elemento no tiene atributos y no contiene texto, así que lo consideramos de tipo complextype (ya que el otro tipo simpletype se emplea para elementos que sólo contienen valores y no poseen ni elementos ni atributos. La lista de elementos que puede contener BIBLIOTECA se define mediante sequence: <xs:element name= BIBLIOTECA > <xs:complextype> <xs:sequence> </xs:sequence> </xs:complextype> </xs:element> El elemento sequence define una secuencia ordenada de sub-elementos. Otros elementos similares de XML Schema son choice que define un grupo de elementos mutuamente excluyentes y all que define un grupo no ordenado de elementos. A continuación, se puede definir el elemento LIBRO, que se tiene que definir como un tipo complejo, ya que contiene subelementos: <xs:element name= LIBRO minoccurs= 1 maxoccurs= unbounded > <xs:complextype> <xs:sequence> 10

</xs:sequence> </xs:complextype> </xs:element> Al contrario que otros lenguajes de definición de esquemas, XML Schema permite definir la cardinalidad de un elemento (el número posible de ocurrencias) con gran precisión. Se pueden especificar tanto el número de ocurrencias (minoccurs) como el máximo número de ocurrencias (maxoccurs). En este ejemplo, maxoccurs toma el valor unbounded, que significa que pueden existir tantas ocurrencias de este elemento como se quiera (no hay un límite superior). Si no se indica un valor, ambos atributos tienen 1 como valor por defecto. A continuación, se pueden definir los elementos TITULO, AUTOR, ANYO y EDITORIAL como tipos simples, ya que no poseen atributos o subelementos y se pueden describir directamente con un elemento element degenerado (vacío). El tipo de estos elementos es xs:string (una cadena cualquiera de caracteres) y aparece prefijado con el prefijo del espacio de nombres asociado con XML Schema, para indicar que se trata de un tipo de dato predefinido de XML Schema: <xs:element name= TITULO type= xs:string minoccurs= 1 maxoccurs= 1 /> <xs:element name= AUTOR type= xs:string minoccurs= 0 maxoccurs= unbounded /> <xs:element name= ANYO type= xs:string minoccurs= 0 maxoccurs= 1 /> <xs:element name= EDITORIAL type= xs:string minoccurs= 0 maxoccurs= 1 /> Como el valor por defecto de minoccurs y maxoccurs es 1, también se podría haber escrito: <xs:element name= TITULO type= xs:string /> <xs:element name= AUTOR type= xs:string minoccurs= 0 maxoccurs= unbounded /> <xs:element name= ANYO type= xs:string minoccurs= 0 /> <xs:element name= EDITORIAL type= xs:string minoccurs= 0 /> 11

Finalmente, la declaración de los atributos de los elementos tiene que aparecer al final. No existen unas razones justificadas para este orden, pero parece que el W3C XML Schema Working Group consideró que era más simple imponer un orden relativo a la definición de la lista de elementos y atributos dentro de un tipo complejo, y que era más natural definir los atributos después de los elementos. De este modo, la definición del atributo COD de LIBRO es: <xs:attribute name= COD type= xs:string /> Este diseño de un XML Schema se conoce como Diseño de muñecas rusas (Russian Doll Design), ya que sigue estrictamente la estructura del documento XML: cada elemento y atributo se define en el contexto donde se emplea en el documento XML. Juntando todas las piezas, el XML Schema quedaría de la siguiente forma: <?xml version= 1.0 encoding= UTF-8?> <xs:schema xmlns:xs= http://www.w3.org/2001/xmlschema > <xs:element name= BIBLIOTECA > <xs:complextype> <xs:sequence> <xs:element name= LIBRO minoccurs= 1 maxoccurs= unbounded > <xs:complextype> <xs:sequence> <xs:element name= TITULO type= xs:string /> <xs:element name= AUTOR type= xs:string minoccurs= 0 maxoccurs= unbounded /> <xs:element name= ANYO type= xs:string minoccurs= 0 /> <xs:element name= EDITORIAL type= xs:string minoccurs= 0 /> </xs:sequence> <xs:attribute name= COD type= xs:string /> </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> </xs:element> 12

</xs:schema> Tipos de datos En la construcción del XML Schema anterior, se ha empleado el atributo type para definir el contenido de los elementos que contienen texto y el tipo de los atributos. En XML Schema existe una jerarquía de tipos de datos, tal como se muestra en la Figura 2. Figura 2 XML Spy 2004 XML Spy 2004 incluye soporte para XML Schema. Por un lado, ayuda a su creación, ya que tiene incorporado toda su sintaxis y es capaz de validar un XML Schema. Por otro lado, es capaz de validar un documento XML contra su XML Schema. En la Figura 3 se muestra XML Spy nada más ejecutarse. Para crear un XML Schema, en el menú File se selecciona New y aparece el cuadro de diálogo que se muestra en la Figura 4 que permite seleccionar el tipo de documento que se quiere crear. 13

Figura 3 Tal como se ve en la Figura 4, entre los distintos tipos de documentos que se pueden crear, está disponible el tipo W3C XML Schema que tiene como extensión xsd. 14

Figura 4 Una vez seleccionado el tipo de documento W3C XML Schema, se muestra una ventana nueva (Figura 5) que permite definir un XML Schema desde cero. Un XML Schema se puede definir y editar de distintas formas, tal como se ve en las pestañas de la parte inferior de la Figura 5: en modo texto (Text), en modo rejilla (Grid), en modo Schema/WSDL o finalmente visualizarlo en el navegador (Browser). Recordemos que un XML Schema es un documento XML bien formado y, por tanto, se puede visualizar en un navegador al igual que cualquier otro documento XML. 15

Figura 5 Otra posibilidad es abrir un XML Schema ya creado. Por ejemplo, en la Figura 6 se muestra en modo texto el XML Schema que se ha creado en el apartado anterior. Se puede observar como XML Spy colorea los distintos elementos del documento: los elementos en marrón, los atributos en rojo y el valor de los atributos en negro. En la Figura 7 se muestra el mismo XML Schema pero en modo rejilla. Este modo permite visualizar de forma gráfica la estructura de un XML Schema. Se puede apreciar en esta imagen el Diseño de muñeca rusa que se ha empleado para definir el XML Schema. Finalmente, en la Figura 8 se muestra de forma gráfica (en forma de árbol) el mismo XML Schema. 16

Figura 6 17

Figura 7 18

Figura 8 Conversión de DTD a XML Schema XML Spy posee una opción para convertir automáticamente un DTD en un XML Schema. Por ejemplo, tomemos el siguiente DTD: <!ELEMENT BIBLIOTECA (LIBRO+)> <!ELEMENT LIBRO (TITULO, AUTOR*, ANYO?, EDITORIAL?)> <!ATTLIST LIBRO COD CDATA #REQUIRED > <!ELEMENT AUTOR (#PCDATA)> <!ELEMENT TITULO (#PCDATA)> <!ELEMENT EDITORIAL (#PCDATA)> <!ELEMENT ANYO (#PCDATA)> En la Figura 9 se muestra el DTD visualizado en XML Spy. Para convertir un DTD a XML Schema, se tiene que seleccionar en el menú DTD/Schema la opción 19

Convert DTD/Schema. Al seleccionar esta opción se muestra el cuadro de diálogo de la Figura 10 que permite elegir distintos modo de conversión. Para convertir un DTD a un XML Schema hay que elegir la opción W3C Schema. Las opciones Represent complex element as y Elements which were used one permiten configurar el modo de generar el XML Schema. Figura 9 20

Figura 10 En la Figura 11 se puede observar el XML Schema generado en modo texto y en la Figura 12 en modo rejilla. 21

Figura 11 22

Figura 12 23