46
2000.Nov.17 Introducción a XML Erich Bühler [email protected] om

2000.Nov.17 Introducción a XML Erich Bühler [email protected]

Embed Size (px)

Citation preview

Page 1: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Introducción a XMLErich Bü[email protected]

Page 2: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

A grandes razgos

XML será el formato y el modelo para intercambiar información entre componentes, aplicaciones, y empresas a través de Internet

Microsoft, IBM, Netscape, etc., están apostando fuertemente a esta tecnología

XML es un estándar abierto a Internet (W3C)

XML habilita una nueva generación de aplicaciones en Internet

Page 3: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

A grandes razgos

XML

XML

Page 4: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Pero... ¿Qué es XML?

Texto que cumple ciertas reglas

Las reglas tienen puntos en común con HTML

Abierto a sistemas operativos

Page 5: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Pero... ¿Qué es XML?

XML es un sub-conjunto de SGML (Standard Generalized Mark-up Language)

SGMLXML

HTML

Page 6: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Pero... ¿Qué es XML?

Más fácil que SGMLMás pequeñoPensado para ser utilizado en InternetXML es un lenguaje utilizado para estructurar y describir datos de forma que puedan ser entendidos o interpretados por diferentes aplicacionesPuede ser utilizado por cualquier lenguaje y/o sistema operativo

Page 7: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Pero... ¿Qué es XML?

XML es un meta-lenguaje que nos permite definir lenguajes de marcado, adecuados a usos determinadosXML es un estándar de Internet, aprobado por la W3C(http://www..w3.org/TR/1998/REC-xml-19980210.html)Los proveedores tratan de ajustarse a las especificacionesMicrosoft (MSXML.DLL) e IBM ofrecen un conjunto de objetos para manejar XML

Page 8: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Pero... ¿Qué NO es XML?

XML no es una versión mejorada de HTML

XML no es un lenguaje para hacer mejores páginas web

XML no es difícil

Page 9: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

¿Dónde está la revolución?

Para ententer la revolución que plantea XML, hay que entender las tecnologías circundantes XSL XSLT DTD Schema XPATH Etc.

Estas son las que realmente hacen la revolución (En especial XSLT, y DTD, y Schema)

Page 10: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Algo de historia sobre XML

Desarrollo a partir de 1996, como un sub-conjunto de SGML

Adoptado como estándar en Febrero de 1998, por el World Wide Web Consortium (W3C)

Page 11: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

World Wide Web Consortium (W3C)

Constituido en 1994 con el objetivo de desarrollar protocoles comunes para la evolución de Internet

Es un consorcio de industrias internacionales, y está participado por MIT (EEUU), INRA (Francia), y Keio University (Japón)

Cuenta con el apoyo de DARPA (EEUU), y la comisión europea (IEEE)

Page 12: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Veamos un ejemplo de HTML

<p><b>El amor es la compensación de la muerte;<br>su correlativo esencial</b><I>Arthur Schopenhauer</I>Precio: <i>200 pesos</i><p>

Page 13: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

¿Qué problemas tiene HTML?

Es un meta-lenguaje de definición de presentación

Contiene datos + presentación

No es fácilmente procesable por ‘máquinas’

No fuerza al la buena estructura de la página (pueden dejarse por error etiquetas sin cerrar)

Su interpretación depende del software utilizado

Está pensado para su utilización en páginas web.

Page 14: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

HTML versus XML

HTML se centra en el despliegue, y es menos estructurado

Las etiquetas y atributos son fijos

Es posible olvidar el cierre de alguna etiqueta

XML es sobre datos, y es sumamente estructurado

Las etiquetas y atributos son extensibles

Se fuerza a tener una estructura consistente

Page 15: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Page 16: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Veamos un ejemplo en XML

<libros><titulo>El amor es la compensación de

la muerte; su correlativo esencial </titulo><autor>Arthur Schopenhauer</autor><precio moneda=“$”>200

pesos</precio></libros>

Page 17: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Ejemplo 1 vs. Ejemplo2

<p><b>El amor es la compensación de la muerte;<br>su correlativo esencial</b><I>Arthur Schopenhauer</I>Precio: <i>200 pesos</i><p>

<libros><titulo>El amor

es la compensación de la muerte; su correlativo esencial

</titulo><autor>Arthur

Schopenhauer</autor><precio

moneda=“$”>200 pesos</precio></libros>

Page 18: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

¿Qué ventajas tiene XML?

Fácil de procesar/entender por software o por seres humanos

Pensado para ser utilizado en cualquier lenguaje o alfabeto

Separa radicalmente la información o contenido, de su presentación o formato

Page 19: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

¿Qué ventajas tiene XML?

Un documento en XML, puede tener varias formas de presentación

Page 20: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

¿Qué ventajas tiene XML?

Formato ideal para tarnsacciones B2B

Permite poderosas técnicas de extracción y búsqueda de información (XSL y XPATH)

Las estrictas reglas para la composición de un documento XML, permite su fácil análisis sintáctico

A diferencia de HTML, XML es sensitivo a mayúsculas y minúsculas

Page 21: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Veamos un documento XML a vuelo de pájaro

<?xml version="1.0"?><?xml version="1.0"?><Order o_id="7845" o_date="1999-02-01" o_cur="USD" c_id="JANTOY" ><Order o_id="7845" o_date="1999-02-01" o_cur="USD" c_id="JANTOY" > <ShippingAddress sa_city="Erie" sa_state="PA" sa_pcode="19130"><ShippingAddress sa_city="Erie" sa_state="PA" sa_pcode="19130"> <Line l_text="Jan's Toys" /><Line l_text="Jan's Toys" /> <Line l_text="1818 Market Street" /><Line l_text="1818 Market Street" /> <Line l_text="3rd Floor, Room 1219" /><Line l_text="3rd Floor, Room 1219" /> </ShippingAddress></ShippingAddress> <OrderDetails><OrderDetails> <Item p_id="325" p_name="Whirlygig" od_qty="5" od_unitp="15.50" /><Item p_id="325" p_name="Whirlygig" od_qty="5" od_unitp="15.50" /> <Item p_id="326" p_name="Zapper" od_qty="2" od_unitp="10.25" /><Item p_id="326" p_name="Zapper" od_qty="2" od_unitp="10.25" /> <Item p_id="327" p_name="Whirlygig" od_qty="5" od_unitp="15.50" /><Item p_id="327" p_name="Whirlygig" od_qty="5" od_unitp="15.50" /> </OrderDetails></OrderDetails> <Comments><Comments> This order replaces order 7844 which was cancelled by the This order replaces order 7844 which was cancelled by the customer.customer. </Comments></Comments></Order></Order>

Declaración XML

Elemento Raíz

Comienzo

Fin

Elemento

Atributo

Contenido

Elemento Vacío

Page 22: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Sopa de Letras

XMLXLL

XPATH

XSL

XSLT

MS SAX

XPointer

XPath

DTDDOM

SGMLXRef

Schema

SOAPParser

XML-Data

XDR

XQL

Page 23: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Algunas definiciones

XML - eXtended Mark-up Language

DTD - Document Type Definition

XSLT- eXtended StyleSheet Language

Parser - Analizador sintáctico

DOM - Document Object Model

XHTML - eXtended HTML

Page 24: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Algunas tecnologías XML

Especificación actual XML v1.0

Definición de Documentos DTD o Schemas

Definición de estilos XSL=XSLT + XPATH

Enlazado de documentos XLL=Xlink + Xpointer

Page 25: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Construyendo documentos XML

Page 26: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

El elemento y sus atributos

<autor pais=“Uruguay”>Mario Benedetti</autor>

Nombre del elemento

Nombre del atributo

Valor del atributo

Contenido del elemento

Etiqueta de fin

Page 27: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Reglas y pautas XML

Se dice que un documento XML es ‘bien formado’ (well formed), cuando cumple una serie de reglas escritas en XML v1.0 Los elementos deben seguir una estructura de

árbol (estríctamente jerárquica) Los elementos deben estar correctamente

anidados Los elementos no se pueden superponer entre

ellos

Page 28: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Ejemplo 1

<libros><autor pais=“Uruguay”>Leo Masliah</libros></autor>

<libros><autor pais=“Uruguay”>Leo Masliah</autor> </libros>

Page 29: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Reglas y pautas XML

Los documentos deben tener un nodo raizTodas las etiquetas deben estar

debidamente cerradasLas etiquetas vacias (etiquetas sin

contenido) deben tener una sintáxis especial

Page 30: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Ejemplo 2

<libros><autor pais=“Uruguay”>Leo Masliah<Ranking=100></autor></libros>

<libros><autor pais=“Uruguay”>Leo

Masliah <Ranking=100/></autor></libros>

Page 31: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Reglas y pautas XML

Un nombre de elemento, atributo, entidad, etc., comienza por una letra, y continúa con letras, dígitos, guiones, rayas, punto, dos puntos.

No pueden utilizarse las palabras XML, xml,Xml, etc., como caracteres iniciales del nombre de un atributo, entidad, etc.

XML es sensitivo a mayúsculas y minúsculas (no es lo mismo <Autor> que <autor>

El uso de espacios en blanco, y los saltos de línea, funcionan al igual que en HTML (sólo se toma en cuenta cuando aparece en el valor de un atributo, o cuando se indica su significancia)

Page 32: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Sintáxis

Las etiquetas se denominan ‘marcas’, y son las partes del documento que el ‘analizador sintáctico’ (parser) espera comprenderLas marcas en un documento XML comienzan con el carácter < y finalizan con >En el caso de referencias de entidad, el carácter inicial es & y el final es ;La primer línea debe especificar la versión de XML (de momento sólo 1.0), la codificación de caracteres (US-ASCII, UTF-8, ISO-8859-1,etc),y va entre caracteres de <? ?> en vez de < .. >

Page 33: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Ejemplo 3

<?xml version=“1.0” encoding=“UTF-7”?>

Page 34: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Sintáxis

La segunda línea define el DTD (se verá mas adelante), y es opcional

<!DOCTYPE mensaje SYSTEM “mensaje.dtd”>

Page 35: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Los Elementos en XML

Los elementos en XML pueden:Tener contenido (Texto, Valores, etc.)Contener otras etiquetas o atributosContener otras etiquetas, atributos, y

contenido a la vez

Pueden estar vacíos

Page 36: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Ejemplo 4

<nombre>James Britt</nombre>

<nombres><nombre>James</nombre><apellido>Britt</apellido>

</nombres>

<persona edad=30><nombre>James Britt</nombre></persona>

<Sexo=“Masculino”/>

Page 37: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Los Atributos en XML

Los elementos pueden incorporar atributos, que son características o propiedades particulares

Los atributos siempre deben estar marcados con comillas simples o dobles, y se sitúa como un valor adicional a una etiqueta.

Page 38: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Ejemplo 5

<libros><titulo>El amor es la compensación de

la muerte; su correlativo esencial </titulo><autor>Arthur Schopenhauer</autor><precio moneda=“$”>200

pesos</precio></libros>

Atributo

Page 39: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Las entidades en XML

En XML v1.0 existen 5 entidades predefinidas, para representar caracteres especiales, y que no se interpretan como marcas para el procesador XML. De esta forma podemos utilizar por ejemplo el carácter < , > , & , ‘ , “

Page 40: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Las entidades en XML

Entidad Carácter

&amp; &

&lt; <

&gt; >

&apos; ‘

&quot; “

Page 41: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Las secciones CDATA

Otra forma de ingresar un bloque de caracteres sin que el procesador XML los interprete, es utilizando los bloques CDATA (Character Data)

Ingresar etiquetas HTML dentro de un documento XML (Se verá su utilidad mas adelante)

Page 42: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Ejemplo 6

Sin una sección CDATA<ejemplo>

&lt;HTML&gt;&lt;BODY&gt;Hola, esto es un documento html dentro de uno XML&lt;/BODY&gt; &lt;/HTML&gt;

</ejemplo>

Page 43: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Ejemplo 6

Con una sección CDATA<ejemplo><![CDATA[

<HTML>;<BODY>Hola, esto es un documento html dentro de uno XML</BODY> </HTML>

]]></ejemplo>

Page 44: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Utilizando comentarios en XML

En general, es necesaria la utilización de comentarios en un documento XMLEstos deben ser ignorados por el procesador sintáctico, y las reproducciones del documento. Igual sintáxis que en HTML (<!-- y -->)Nunca puede ir dentro de una etiqueta, etc.

Page 45: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

Ejemplo 7

<?xml version=“1.0”?><!-- Aca va el tipo de documento --><!DOCTYPE ejemplo [<!-- Esto es otro comentario --><!element Ejemplo (#PCDATA)>...

Page 46: 2000.Nov.17 Introducción a XML Erich Bühler tech@vblibros.com

2000.Nov.17

FIN de Parte I