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="ti@tuDireccion.com" de="mi@miDireccion.com" tema="Fel
<texto>
Este premio es la recompensa justa a tu esfuerzo. !Felicidades!
</texto>
</mensaje>
El orden de los atributos es irrelevante.
<mensaje para="ti@tuDireccion.com" de="mi@miDireccion.com" tema="Fel
<mensaje para="ti@tuDireccion.com" tema="Felicitacion" de="mi@miDire
<mensaje tema="Felicitacion" de="mi@miDireccion.com" para="ti@tuDire
Se puede definir tanto con atributos como con elementos.
<mensaje>
<para>ti@tuDireccion.com</para>
<de>mi@miDireccion.com</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="ti@tuDireccion.com" de="mi@miDireccion.com"
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