XML y Bases de datos XML Amparo López Gaona Agosto 2008 Amparo López Gaona () XML y Bases de datos XML Agosto 2008 1/1 XML El lenguaje XML (eXtensible Markup Language) es un lenguaje de marcado diseñado para definir contenido más que presentación. Marcado significa un mecanismo para agregar meta-conocimiento e información de la estructura al documento. Estándar para representación e intercambio de datos, principalmente en Internet. En tanto HTML usa las marcas para presentación (”itálicas”), XML las utiliza para definir la semántica (”esto es una dirección”). La idea principal es crear un conjunto de marcas para un dominio (quı́mica, economı́a, etc.) y traducir todos los datos en documentos XML con las marcas apropiadas. Amparo López Gaona () XML y Bases de datos XML Agosto 2008 2/1 Caracterı́sticas generales Usuarios definen sus propias marcas/etiquetas. Las marcas sobre elementos identifican su semántica en lugar de especificar el formato. La estructura de los documentos puede anidarse a cualquier nivel. Las relaciones entre los datos se dan vı́a anidamientos y referencias. Los documentos XML pueden contener la descripción de su gramática. El contenido de la información está separado de su traducción (formato). XML es una familia de tecnologı́as. XML no requiere de licencia y es independiente de plataformas. Amparo López Gaona () XML y Bases de datos XML Agosto 2008 3/1 Documentos XML Un documento XML puede ser visto como una secuencia de caracteres que se sujetan a ciertas reglas y en ocasiones con cierto sentido. Una aplicación XML es un vocabulario especı́fico que contiene elementos y atributos. Por ejemplo DocBook es una aplicación XML para producir manuscritos técnicos como un libro. Los elementos que define incluyen book, chapter, para, sect1, sect2, programlisting, etc. Al escribir un documento DocBook, se utilizan esos elementos y en la forma establecida. Todos los documentos DocBook son documentos XML, pero al contrario no es cierto. La sintaxis de la aplicación define cuáles son los documentos válidos y existen diferentes lenguajes para ello: DTD, esquemas. Amparo López Gaona () XML y Bases de datos XML Agosto 2008 4/1 Ejemplo <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <book lang="es"> <chapter> <title>Hola</title> <para>Esta es la introducci’on</para> <!-- Un primer comentario --> <sect1> <title>Secci’on ’unica</title> <para>Y hasta dice algo</para> <sect2> <title>Primera subsecci’on</title> <para>Nada de que hablar</para> </sect2> <sect2> <title>Segunda subsecci’on</title> <para>Nada que decir</para> </sect2> </sect1> </chapter> <chapter> <title>Mundo</title> <para>Esta es otra introducci’on</para> <sect1> <!-- Un comentario en la primera secci’on, del segundo cap’itulo --> <title>Primer t’itulo</title> <para>Algo que decir</para> </sect1> <sect1> <title>Segundo t’itulo</title> <para>M’as que decir</para> </sect1> </chapter> Amparo López Gaona () XML y Bases de datos XML Agosto 2008 6/1 Ingredientes de XML Un documento XML consta de tres tipos de componentes: Elementos. Todo elemento está delimitado por una marca de inicio y una de final. <divisa> .... </divisa> Atributos sobre los elementos. <divisa moneda= "dolar" > .... </divisa> Texto. Todo aquello que está entre las marcas y no es otro elemento. <...>14 de Abril de 1992</...> Amparo López Gaona () XML y Bases de datos XML Agosto 2008 7/1 Elementos La unidad fundamental de XML es el elemento. Cada documento tiene al menos un elemento. Los elementos tienen 4 componentes: Nombre. Atributos. Espacio de nombre en el alcance del elemento. Contenido. Amparo López Gaona () XML y Bases de datos XML Agosto 2008 8/1 ... Elementos (nombre) El nombre de cada elemento puede contener tantos caracteres alfanuméricos como se requiera. No puede empezar ni con número. No puede contener espacios en blanco. No puede empezar con ”XML”en ninguna combinación de meyúsculas ni minúsculas. Cada elemento está delimitado por un par de marcas: Una de inicio: <nombre del elemento> Una de fin </nombre del elemento> Amparo López Gaona () XML y Bases de datos XML Agosto 2008 9/1 ... Elementos (Contenido) Lo que está entre las marcas es el contenido del elemento. Este puede ser: Texto: <pais>Mexico</pais> Un conjunto de elementos. <envio> <calleNum>Tlalcoligia 98</calleNum> <ciudad> Mexico D.F.</ciudad> <cp>14440</cp> <pais>Mexico</pais> </envio> Mixto: <envio> Srita. Andrea Lopez <calleNum>Tlalcoligia 98</calleNum> <ciudad> Mexico D.F.</ciudad> <cp>14440</cp> <pais>Mexico</pais> </envio> Muy útil para documentos que contienen narrativa: libros, historias, XML y Bases de datos XML Agosto 2008 11 / 1 etc. Amparo López Gaona () ... Elementos (contenido) Vacı́o <pais></pais> != <pais> </pais> <pais/> En el contenido de un elemento no pueden ir los caracteres <, >, &, ;, ’. Amparo López Gaona () XML y Bases de datos XML Agosto 2008 13 / 1 ... Elementos (Atributos) Los atributos son valores, con nombre, asociados con los elementos. La sintaxis es: nombre = valor El nombre de un atributo es cualquier nombre válido y el valor es una cadena de texto, entre apostrofes o comillas. <subtotal moneda=’euro’>393.85</subtotal> <subtotal moneda="euro">393.85</subtotal> <subtotal moneda = "euro">393.85</subtotal> Un elemento puede tener o no atributos. Amparo López Gaona () XML y Bases de datos XML Agosto 2008 15 / 1 ... Elementos (Atributos) <mensaje para="[email protected]" de="[email protected]" tema="Fel <texto> Este premio es la recompensa justa a tu esfuerzo. !Felicidades! </texto> </mensaje> El orden de los atributos es irrelevante. <mensaje para="[email protected]" de="[email protected]" tema="Fel <mensaje para="[email protected]" tema="Felicitacion" de="mi@miDire <mensaje tema="Felicitacion" de="[email protected]" para="ti@tuDire Se puede definir tanto con atributos como con elementos. <mensaje> <para>[email protected]</para> <de>[email protected]</de> <tema>Felicitacion</tema> <texto> Este premio es la recompensa justa a tu esfuerzo. !Felicidade Amparo López Gaona () XML y Bases de datos XML Agosto 2008 17 / 1 Instrucciones de proceso Se utilizan por la aplicación que procesa un documento XML. Especifican software particular para manejar el documento XML una vez que se ha realizado la revisión sintáctica. Sintaxis: <? y ?> Pueden aparecer antes, dentro o después del elemento raı́z. No hay regla para ello. Generalmente aparecen en el prólogo. En general no se asocian con una aplicación XML. Se utilizan para información que no es relativa a XML. <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type= "text/xml"href="limited.xsl"?> Amparo López Gaona () XML y Bases de datos XML Agosto 2008 18 / 1 Prólogo Los documentos XML pueden empezar con un prólogo. El prólogo contiene una declaración y la definición de las reglas sintácticas del mismo. Atributos del prólogo: version Identifica la versión XML usada en tal documento. Este atributo es obligatorio y de momento su valor 1.0. encoding Identifica el conjunto de caracteres usados. ISO-8859-1 es para español. El valor por omisión es el Unicode comprimido UTF-8. standalone Especifica cuando un documento se refiera a una entidad externa o a una definición de tipos de dato externo. Si no hay tales referencias se debe escribir yes. <?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> Todo lo que está después del prólogo constituye el contenido del documento. Amparo López Gaona () XML y Bases de datos XML Agosto 2008 20 / 1 Comentarios Los comentarios permiten incluir en el documento información que no será procesada. Se escriben entre los sı́mbolos <!-- y --> Se pueden colocar en cualquier sitio, excepto en las marcas, dentro de otros comentarios ni en las DTDs. <!-- Verificar que este documento tenga codigo ISO-8859-1 --> <mensaje para="[email protected]" de="[email protected]" tema="Felicitacion"> <!-- Este es un comentario inutil --> <texto> Este premio es la recompensa justa a tu esfuerzo. !Felicidade </texto> </mensaje> No deben incluir -- Amparo López Gaona () XML y Bases de datos XML Agosto 2008 22 / 1 Entidades Existen entidades predefinidas que son marcas para representar caracteres especiales. Se ponen entre los sı́mbolos & y ; Se tienen cinco entidades predefinidas: 1 &amp; (&). 2 &lt; (<). 3 &gt; (>). 4 &apos; (’). 5 &quot; ("). Ejemplos: &#201; (É) (Referencias a caracteres) &alg; @Amparo López Gaona Amparo López Gaona () XML y Bases de datos XML Agosto 2008 23 / 1 CDATA (Character data) El parser ignora lo que se encuentra en esta sección, más bien lo interpreta como caracteres sin significado alguno. Puede utilizarse para incluir scripts escritos en otros lenguajes como JavaScript. <mensaje>Feliz dia</mensaje> Elemento <![CDATA[<mensaje>Feliz dia</mensaje>]]> &lt;mensaje&gt;Feliz dia&lt;/mensaje&gt; <![CDATA[ function F_to_C { return ((F - 32) * (5 / 9)) } ]]> Una sección CDATA no puede contener la cadena ]]> por lo tanto no es posible tener CDATAs anidadas. Ejemplo para codificar ]]> se escribirı́a: <![CDATA[]]]]><![CDATA[>]]> Amparo López Gaona () XML y Bases de datos XML Agosto 2008 25 / 1 Espacios de Nombre Los espacios de nombre permiten escribir un documento que usa dos o más conjuntos de etiquetas sin complicto. Con lo cual se reutilizan esquemas existentes para diseñar documentos XML más complejos. Un espacio de nombres se declara con la palabra reservada xmlns y su valor debe ser un uniform resource identifier (URI) Ejemplo: Suponer que una compañı́a xml.com desea publicar reseñas de sus libros y se desea marcar la información tanto con XML como con HTML. Se debe poder distinguir por ejemplo, entre la etiqueta title como tı́tulo del libro y otra llamada igual para HTML. Amparo López Gaona () XML y Bases de datos XML Agosto 2008 26 / 1 ... Espacios de Nombre <h:html xmlns:xdc="http://www.xml.com/books" xmlns:h="http://www.w3.org/HTML/1998/html4"> <h:head><h:title>Book Review</h:title></h:head> <h:body> <xdc:bookreview> <xdc:title>XML: A Primer</xdc:title> <h:table> <h:tr align="center"> <h:td>Author</h:td><h:td>Price</h:td> <h:td>Pages</h:td><h:td>Date</h:td></h:tr> <h:tr align="left"> <h:td><xdc:author>Simon St. Laurent</xdc:author></h:td> <h:td><xdc:price>31.98</xdc:price></h:td> <h:td><xdc:pages>352</xdc:pages></h:td> <h:td><xdc:date>1998/01</xdc:date></h:td> </h:tr> </h:table> </xdc:bookreview> Agosto 2008 Amparo López Gaona () XML y Bases de datos XML </h:body> 28 / 1 ... Espacios de Nombre Utilizando un espacio por omisión. <html xmlns="http://www.w3.org/HTML/1998/html4" xmlns:xdc="http://www.xml.com/books"> <head><title>Book Review</title></head> <body> <xdc:bookreview> <xdc:title>XML: A Primer</xdc:title> <table> <tr align="center"> <td>Author</td><td>Price</td> <td>Pages</td><td>Date</td></tr> <tr align="left"> <td><xdc:author>Simon St. Laurent</xdc:author></td> <td><xdc:price>31.98</xdc:price></td> <td><xdc:pages>352</xdc:pages></td> <td><xdc:date>1998/01</xdc:date></td> </tr> </table> Amparo López Gaona () XML y Bases de datos XML Agosto 2008 30 / 1