01 introducci.n a xml - colimbo.net · xml, que define la sintáxis xml. xlink (xml linking...

25
Análisis y Diseño de Sistemas de If I Informacn para Internet 1 Introducción a XML 1. Introducción a XML Luís Rodríguez Baena ([email protected]) Universidad Pontificia de Salamanca (campus Madrid) Facultad de Informática

Upload: ngoxuyen

Post on 01-Oct-2018

289 views

Category:

Documents


0 download

TRANSCRIPT

Análisis y Diseño de Sistemas de I f ió IInformación para Internet

1 Introducción a XML1. Introducción a XML

Luís Rodríguez Baena ([email protected])

Universidad Pontificia de Salamanca (campus Madrid)Facultad de Informática

¿Qué es XML?

XML: Extensible Markup Language (Lenguaje de marcas ampliable).● Estándar del W3C que define una sintaxis genérica para marcar documentos con etiquetas● Estándar del W3C que define una sintaxis genérica para marcar documentos con etiquetas

de forma que sean legibles por humanos.El término marca de utiliza para indicar el significado de un carácter o un grupo de caracteres de un documento.● Permiten codificar texto electrónico para indicar el significado de una porción de texto

di t t i l l t d dmediante caracteres especiales: los caracteres de marcado.Por ejemplo, un texto en negrita se colocará entre las marcas de inicio y fin de negrita.

o Esto es lo que hacen formatos como RTF o HTML.

Algunos lenguajes de marcas ya tienen caracteres de marcado predefinidos.● XML es ampliable: permite crear marcas propias con un significado específico dentro de un p p p p g p

documento.● Proporciona la sintaxis necesaria para crear lenguajes de marcas a partir de la definición de

sus propias etiquetas.● La flexibilidad le permite definir documentos de dominios muy distintos (datos bancarios,

gráficos, vectoriales, fórmulas matemáticas, datos de localización geográfica, noticias, etc.).La sintaxis estándar permite que estos documentos sean explotados por programas que interactúen, traten y manipulen la información contenida.● Muchos lenguajes (como Java o .NET Framework) incluyen bibliotecas de clases para

trabajar con datos XML

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

2

¿Qué es XML?Ventajas y utilidadesj y

Ventajas de XML.● Permite definir cualquier cosa desde datos estructurados documentos gráficos etc● Permite definir cualquier cosa, desde datos estructurados, documentos, gráficos, etc.

Sólo define la sintaxis del lenguaje.● Es fácil de leer e interpretar.● Ha sido diseñado para los protocolos de Internet.

Aunque también se utiliza en otros dominios (por ejemplo, en archivos de configuración).E i d di d l li ió bl● Es independiente de la aplicación y portable.

Se puede utilizar para traspasar datos de un lenguaje a otro, de una plataforma a otra, de una aplicación a otra.

● Utiliza caracteres Unicode, lo que permite su adaptación a múltiples lenguas.● La especificaciones son de libre uso.

Utilidades.● Definición de formatos estándar de documentos.

Por ejemplo el formato OpenDocument (ODF), que se está adoptando por muchas administraciones o el Open XML de Microsoft.

● Aplicaciones que necesitan almacenar datos de forma estructurada.p q● Gestores de bases de datos.● Persistencia de objetos para servicios Web.● Transferencia de datos mediante HTTP en comercio electrónico, B2B, B2C.● Migración entre distintas plataformas.●

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

3

● …

Lenguajes de marcas

Los lenguajes de marcas están formados por etiquetas g j p q(marcas, tags, tokens) que especifican la apariencia o la estructura de un documento.La unión de las etiquetas y el texto forman el códigoLa unión de las etiquetas y el texto forman el código fuente del documento.Ese código fuente puede ser código abierto o propietariopropietario.● El formato de Word 2007 es código cerrado.

No se puede interpretar ni modificar si no es con aplicaciones específicasespecíficas.

● El formato RTF, HTML (o XML) es código abierto.Puede entenderse y modificarse con herramientas estándar de edición.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

4

Lenguajes de marcas (II)

XML es un lenguaje de “meta-marcas”.N ti j t fij d ti t● No tiene un conjunto fijo de etiquetas.

● Aporta la manera de definir etiquetas adaptadas a un dominio específico.XML es un “meta-lenguaje”.● Se utiliza para definir otros lenguajes.p g j

Esta basado en SGML (Standard Generalized Markup Language).● Lenguaje desarrollado a finales de los años 70 para definir documentos de

texto.● Se utilizó en sectores que necesitaban administrar grandes volúmenes de● Se utilizó en sectores que necesitaban administrar grandes volúmenes de

información (militar, aeroespacial, gubernamental).● Fue el lenguaje elegido para aplicaciones que utilizaban los protocolos de

Internet.HTML está basado en SGML.

● Problema: excesivamente complicado.En 1996 se planteó hacer una versión ligera de SGML que resolviera el mismo tipo de problemas: definir documentos.● En 1998 nace la especificación de XML 1 0

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

5

● En 1998 nace la especificación de XML 1.0.

Lenguajes de marcas:XML y HTMLy

HTML.● Crea un estándar que define la estructura de documentos que

incluyan hipertexto.● Representa la estructura de un documento mediante etiquetas● Representa la estructura de un documento mediante etiquetas.● Permite que un lector humano pueda comprender la estructura

del texto.● No es la forma adecuada de representar información para que● No es la forma adecuada de representar información para que

una máquina (o un programa) pueda interpretarla.● El documento está muy ligado a la presentación del mismo en el

cliente Webcliente Web.Además los diseñadores se han empeñado en utilizar HTML no para definir la estructura del documento, sino para definir la presentación.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

6

presentación.

Lenguajes de marcas:XML y HTML (II)y ( )

XML.● Nace por la necesidad de estandarizar los contenidos presentes

en los documentos.● Puede permitir que los agentes software entiendan el contenido● Puede permitir que los agentes software entiendan el contenido.

Indica el significado de cada fragmento de información de un documento.La presentación de esa información es una tarea independiente queLa presentación de esa información es una tarea independiente que se puede encomendar a HTML.

● No sustituye a HTMLOfrece un mecanismo que permita informar sobre el significado delOfrece un mecanismo que permita informar sobre el significado del contenido de un documento.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

7

Lenguajes de marcas:XML y HTML (III)y ( )

XML y HTML están basados en SGML.y● SGML permite definir una DTD (Document Type Definition).

Especifica las reglas para construir un documento en un lenguaje determinado.HTML está basado en una DTD codificada mediante SGML.

● XML no es un tipo de documento SGML, sino una versión abreviada y optimizada para utilizarla en Internet.abreviada y optimizada para utilizarla en Internet.

Permite definir sus propias DTD.La DTD de cada documento indica el significado del contenido del mismo.A partir de una DTD un lector no humano puede extraer y procesar el contenido de un documento.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

8

Lenguajes de marcas:XML y HTML (IV)y ( )

XML no es una mejora ni una ampliación de HTML.j p● HTML permite la creación de un único tipo de documento.● XML es ampliable: permite la creación de distintos tipos de

documentos.● HTML está enfocado a la representación de la estructura de la

información y se está utilizando para la representación de la misma.● XML está enfocado a la descripción del significado de la p g

información.● HTML permite que un lector humano pueda leer el contenido de un

documento.● XML permite que un humano lea con cierta facilidad el contenido de

un documento, pero además permite que lectores no humanos (agentes de software) entiendan el significado del documento.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

9

El estándar XML

Se trata de una recomendación de World Wide Web Consortium, www.w3c.org. ● La última recomendación es la XML 1.0 (cuarta edición) de agosto de 2006 (www.w3.org/TR/REC-xml/).( ) g ( g/ / /)● Estándar abierto y gratuíto.

Presenta algunas tecnologías de soporte genéricas basadas en XML…● XML, que define la sintáxis XML.● XLink (XML Linking Language), define el estándar para representar los enlaces entre recursos basados en XML.● XSL (Extensible Style Language), define el estándar de las hojas de estilo para la representación de documentos XML.

XSLT (Extensible Stylesheet Language Transformations) que permite convertir documentos XML de una sintaxis a otraXSLT (Extensible Stylesheet Language Transformations), que permite convertir documentos XML de una sintaxis a otra (por ejemplo de XML a HTML).XSL-FO (Extensible Stylesheet-Format Object), que permite especificar el formato viaul con el que se presenta XML y que se utiliza para generar documentos XML.XPath, una sintaxis no XML que permite acceder a partes de un documento XML.

● XPointer, sintaxis que permite seleccionar partes de un documento XML referido por una URI.● XInclude, mecanismo para combinar varios documentos XML.

E i d b i di i i l d di i b l i● Espacios de nombre, que permiten distinguir elementos de distintos vocabularios.● Esquemas, que definen un vocabulario de un documento XML.● SAX (Simple API for XML) una interfaz de programación para XML.● DOM (Documento Object Model), una API orientada a analizar las etructuras de arbol de un documento XML.● XHTML, una versión XML de HTML.● RDDL (Resource Directory Description Language).

… y en él se basan otras aplicaciones estándares del W3C.● SVG, definición de gráficos vectoriales para la Web basados en XML.● MathML, lenguaje de marcas matemáticas para incrustar ecuaciones en páginas Web.● RDF (Resocurce Description Framework) una aplicación para la descripción de recursos basados en tesauros y

utilizado en la Web semántica.● …

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

10

Aplicaciones de XMLXML como almacenamiento de datos

XML sirve para representar datos de forma estándar que puedan ser intercambiados entre programas y aplicaciones.Existe gran cantidad de información almacenada en de forma estructurada en bases de datos relacionales.● Esta información se almacena en soportes y formatos distintos

dificultando su intercambio.● Si esa información se convierte en XML y se vuelta en la Web puede

ser interpretada por cualquier agente XMLser interpretada por cualquier agente XML.Facilita el acceso a la informaciónDisminuyen los costes asociados a la conversión.

● Si el significado de la información contenida está estandarizado es● Si el significado de la información contenida está estandarizado es posible el procesamiento de contenidos de distintos proveedores por parte de agentes de software.

Se podría informar sobre el significado de una página Web, no sólo buscar si contiene una palabra determinada: Web Semántica

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

11

buscar si contiene una palabra determinada: Web Semántica.

Aplicaciones de XMLInteroperabilidadp

XML ofrece la posibilidad de proporcionar datos entre plataformas cruzadas a largo plazocruzadas a largo plazo.● Otros formatos propietarios no estándar no garantizan su lectura en un futuro.● XML está escrito en texto plano: permite su lectura en cualquier plataforma

pasada o futura.● XML es autodescriptivo: proporciona información sobre el significado de lo que● XML es autodescriptivo: proporciona información sobre el significado de lo que

contiene.La interoperabilidad de XML hace que sea el protocolo de información en los servicios Web.● Un servicio Web es un conjunto de protocolos y estándares que sirven par● Un servicio Web es un conjunto de protocolos y estándares que sirven par

intercambiar datos entre aplicaciones.Aplicaciones desarrolladas en distintos lenguajes y ejecutadas en cualquier plataforma pueden utilizar servicios Web para intercambiar y procesar datos en redes.

● La interoperabilidad de los servicios Web se consigue utilizando estándares abiertos:abiertos:

HTTP como protocolo de transmisión.SOAP como protocolo de comunicación entre los objetos de las aplicaciones.XML como formato de intercambio de datos.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

12

Proceso de datos XML

Un documento XML es un archivo de texto que puede crearse y editarse con cualquier editor de texto plano.<?xml version="1.0" encoding="iso-8859-1" ?><agenda><persona dni="123456C"><nombreCompleto>p

<primerApellido>Pérez</primerApellido><segundoApellido>Gómez</segundoApellido><nombre>Ana María</nombre>

</nombreCompleto><telefono tipo="casa">+34912343456</telefono><telefono tipo="móvil">+34678675678</telefono>

Las aplicaciones que utilizan el documento intentan interpretar el contenido li d i tá ti d XML ( XML)

<telefono tipo móvil >+34678675678</telefono></persona></agenda>

con un analizador sintáctico de XML (un parser XML).● El parser es un software que divide el documento en unidades más pequeñas que debe

entender la estructura del documento y seguir las reglas que gobiernan la estructura.● El parser divide el documento en elementos, atributos, etc. y los irá pasando a la aplicación

l l

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

13

elemento a elemento.

Proceso de datos XML (II)

Si se detecta una infracción a las reglas de la estructura, el parser informa del error a la aplicaciónerror a la aplicación.● Puede detenerse el análisis (como ocurre en los navegadores) o no.

Algunos analizadores se fijan también en las reglas que rigen las etiquetas admitidas en el documento.● Esas reglas están almacenadas en las DTD (Document Type Definition) o en los schemas.g ( yp )● El documento XML puede informar dónde se encuentra esa DTD o esquema.● Si el analizador de validación descubre un error, también informa a la aplicación que lo

utiliza.Las aplicaciones que reciben los datos del analizador pueden ser:● Navegadores Web● Navegadores Web.● Procesadores de texto como StarOffice.● Bases de datos SQL Server que guarda datos XML como un nuevo registro.● Programas de dibujo como Adobe Iilustrator que interpreta XML como coordenadas para el

contenido de una imagen.P d t bilid d Mi ft M● Programas de contabilidad como Microsoft Money.

● Lectores de noticias RSS.● Aplicaciones escritas en lenguajes de programación que tengan librerías de XML como Java

o .NET Framework.● …

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

14

Proceso de datos XML (III)

Algunos analizadores:D d ti● Dos grandes tipos:

Parsers SAX (Simple API for XML), más simples y rápidos.Parsers DOM (Document Object Model) que devuelven un árbol con la estructura XML.

● EXPAT, utilizado por Mozilla.● MSXML utilizado por Microsoft● MSXML, utilizado por Microsoft.● Xerces, que utiliza Apache.

Navegadores y XML.● Tanto Firefox como IE, Opera, Safari o Chrome incluyen parsers XML.

Firefox e IE permiten ver la estructura del documentoFirefox e IE permiten ver la estructura del documento.Opera, Safari o Chrome sólo muestran actualmente los contenidos.

● El primero en soportarlo fue IE4 que incorpora un parser para interpretar las etiquetas XML.

Los navegadores pueden visualizar documentos XML como si fueranLos navegadores pueden visualizar documentos XML como si fueran HTML. ● Utilizan además una serie de hojas de estilo que indica la presentación del

documento XML.● Además son capaces de utilizar código XML embebido en HTML.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

15

p g

Ejemplo: XML vs. HTML

Una aplicación que proporcione un listado de temperaturas de varias ciudades.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

16

Ejemplo: XML vs. HTML (II)

Código HTML<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>

<title>Temperaturas</title></head>

<tr><td>Barcelona</td><td>Lunes 12 de Abril de 2002</td><td>11 AM</td><td>21&#x00B0;</td><td>23&#x00B0;</td>

<body><table border=1>

<tr><td>Ciudad</td><td>Fecha</td><td>Hora</td>td M di /td

<td>18&#x00B0;</td></tr>

</table></body></html>

<td>Media</td><td>Maxima</td><td>Minima</td>

</tr><tr>

<td>Madrid</td><td>Lunes 12 de Abril de 2002</td><td>Lunes 12 de Abril de 2002</td><td>11 AM</td><td>22&#x00B0;</td><td>25&#x00B0;</td><td>19&#x00B0;</td>

</tr>

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

17

Ejemplo: XML vs. HTML (III)

Problemas en cuanto a la información sobre el contenido:● Su análisis por un lector humano es fácil, no así su análisis

mediante un lector no humano (un programa)mediante un lector no humano (un programa).● El acceso a la información está basado en la representación de

los datos, y no en el significado de los mismos.● La única forma de extraer su información es analizando el● La única forma de extraer su información es analizando el

archivo de texto con código HTML.● Cualquier cambio en el aspecto, influirá en la forma en que se

extraen los datosextraen los datos.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

18

Ejemplo: XML vs. HTML (IV)

Código XML<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?><!DOCTYPE Temperaturas SYSTEM "Temperaturas.dtd"><Temperaturas>

<Ciudades><Ciudad>

<Nombre>Madrid</Nombre><Dia>Lunes 12 de abril de 2002</Dia><Hora>11 AM</Hora><TemperaturaActual unidad="Celsius">22</TemperaturaActual><TemperaturaMaxima unidad="Celsius">25</TemperaturaMaxima>

i i id d " l i " 19 / i i<TemperaturaMinima unidad="Celsius">19</TemperaturaMinima></Ciudad><Ciudad>

<Nombre>Barcelona</Nombre><Dia>Lunes 12 de abril de 2002</Dia><Hora>11 AM</Hora><Hora>11 AM</Hora><TemperaturaActual unidad="Celsius">21</TemperaturaActual><TemperaturaMaxima unidad="Celsius">23</TemperaturaMaxima><TemperaturaMinima unidad="Celsius">18</TemperaturaMinima>

</Ciudad></Ciudades>

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

19

</Temperaturas>

Ejemplo: XML vs. HTML (V)

La DTD describe los elementos que componen el documento y los valores que pueden contener

<!ELEMENT Temperaturas (Ciudades+)><!ELEMENT Ciudades (Ciudad+)><!ELEMENT Ciudad (Nombre Dia Hora TemperaturaActual TemperaturaMaxima TemperaturaMinima)><!ELEMENT Ciudad (Nombre,Dia,Hora,TemperaturaActual,TemperaturaMaxima,TemperaturaMinima)><!ELEMENT Nombre (#PCDATA)><!ELEMENT Dia (#PCDATA)><!ELEMENT Hora (#PCDATA)><!ELEMENT TemperaturaActual (#PCDATA)><!ELEMENT TemperaturaMaxima (#PCDATA)>p<!ELEMENT TemperaturaMinima (#PCDATA)><!ATTLIST TemperaturaActual unidad (Farenheit|Celsius) #REQUIRED><!ATTLIST TemperaturaMaxima unidad (Farenheit|Celsius) #REQUIRED><!ATTLIST TemperaturaMinima unidad (Farenheit|Celsius) #REQUIRED>

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

20

Ejemplo: XML vs. HTML (VI)

El aspecto del documento en el navegador.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

21

Ejemplo: XML vs. HTML (VII)

Agregando los estilos<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?><!DOCTYPE Temperaturas SYSTEM "Temperaturas.dtd">

<?xml-stylesheet type="text/xsl" href="Temperaturas.xsl"?>

<T t ><Temperaturas><Ciudades><Ciudad>

<Nombre>Madrid</Nombre><Dia>Lunes 12 de abril de 2002</Dia><Hora>11 AM</Hora><TemperaturaActual unidad="Celsius">22</TemperaturaActual><TemperaturaMaxima unidad="Celsius">25</TemperaturaMaxima><TemperaturaMinima unidad="Celsius">19</TemperaturaMinima>

</Ciudad><Ciudad>

<Nombre>Barcelona</Nombre><Dia>Lunes 12 de abril de 2002</Dia><Hora>11 AM</Hora><TemperaturaActual unidad="Celsius">21</TemperaturaActual><TemperaturaMaxima unidad="Celsius">23</TemperaturaMaxima><TemperaturaMinima unidad="Celsius">18</TemperaturaMinima>

</Ciudad>

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

22

</Ciudades></Temperaturas>

Ejemplo: XML vs. HTML (VIII)

La hoja de estilos XSL y la hoja CSS<?xml version="1.0"?><xsl:stylesheet

version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/"><html><h d><titl >T t </titl >

</xsl:for-each></table>

</body></html></xsl:template></xsl:stylesheet>

<head><title>Temperaturas</title></head><body>

<table border="1"><tr>

<td>Ciudad</td><td>Dia</td>td a /td<td>Hora</td><td>Media</td><td>Maxima</td><td>Minima</td>

</tr><xsl:for-each select="Temperaturas/Ciudades/Ciudad"><tr>

<td><xsl:value-of select="Nombre"/></td><td><xsl:value-of select="Dia"/></td> <td><xsl:value-of select="Hora"/></td> <td><xsl:value-of select="TemperaturaActual"/>&#x00B0;</td><td><xsl:value-of select="TemperaturaMaxima"/>&#x00B0;</td> <td><xsl:value-of select="TemperaturaMinima"/>&#x00B0;</td>

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

23

<td><xsl:value of select TemperaturaMinima />&#x00B0;</td> </tr>

Ejemplo: XML vs. HTML (IX)

El resultado del documento XML.

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

24

Ejemplo: XML vs. HTML (X)

El documento XML informa sobre el significado de cada uno de los elementos del documento.La DTD permite restringir la información adecuándola a un entorno determinado.La hoja de estilo permite su lectura por un humano de forma similar al resultado de un documento HTML.La presentación es la misma que el documento HTML, pero…p q , p● El contenido del documento es independiente de su representación.

Los cambios en la representación no afectan al contenido.

● Las etiquetas XML informan sobre el significado del contenido de cada una de las partes.

● Facilita la extracción de la información por partes de lectores no humanos (agentes de software).

Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodríguez Baena, Facultad de Informática, 2008

25