Vous êtes sur la page 1sur 26

Introduccin

a
XML

2002 IBM Corporation

Parte 1
Conceptos del lenguaje XML

Qu es XML?
Un lenguaje estndar para la descripcin y el intercambio de informacin
Ejemplo:
<?xml version="1.0"?>
<Curso>
<Materia>Arquitectura</Materia>
<Carrera>Lic Admin y Sistemas</Carrera>
<Titular>
<NombreTitular>Mario Bolo</NombreTitular>
</Titular>
<Alumno>
<NombreAlumno>xxxx</NombreAlumno>
</Alumno>
<Alumno>
<NombreAlumno>yyyy</NombreAlumno>
</Alumno>
<Alumno>
<NombreAlumno>zzzz</NombreAlumno>
</Alumno>
</Curso>

Estructura del documento XML anterior

Curso

Materia

Carrera

Titular

Alumno

NombreTitular

NombreAlumno

XML bien formado


Un documento XML contiene etiquetas (markup) y contenido:

Etiquetas (markup) Metadatos


XML Declaration
Elementos
Atributos

Contenido Datos
Caracteres (letras y nmeros)
Entidades

XML Declaration
Los documentos XML deben comenzar con una XML Declaration
que especifica la versin de XML y (opcionalmente) la codificacin
de los caracteres utilizada:
<?xml version="1.0 encoding='ISO-8859-1'?>

Elementos
Los elementos son etiquetas (markups) que rodean al
contenido. Todo documento XML debe tener al menos un
elemento.
Un elemento puede no tener contenido; en tal caso el
elemento se llama elemento vaco

<element_name> contenido </element_name>


o
<element_name /> (elemento vaco)

Elemento raz
Existe en cada documento XML un nico elemento que no es
parte de ningn otro y se denomina elemento raz
Ejemplo: lista es el elemento raz
<lista>
<item>Item 1</item>
<item>Item 2</item>
<item>Item 3</item>
</lista>

Anidado (nesting) correcto de los elementos


Correcto:
<Item>
<Peso>
<numero>12</numero>
<unidad>gramos</unidad>
</Peso>
</Item>

Incorrecto:
<Item>
<Peso><unidad>kg</Peso></unidad>
</Item>

Atributos
Asignan un valor a un elemento .Pueden ser utilizados para
asociar contenido adicional al elemento
<empleado tipo=contratado>
<apellido> Prez </apellido>
<nombre> Juan </nombre>
<legajo> 022114 </legajo>
</empleado>

10

Entidades
Son nombres que reemplazan a contenidos
Se usan por ejemplo para reemplazar contenidos que no pueden

utilizarse en forma directa por tener un significado especial en XML:


Ejemplos:
&lt para el smbolo menor (<)
&gt para el smbolo mayor (>)
&quot para la doble comilla ()
&apos para la comilla simple ()
&amp para el ampersand (&)

11

NameSpaces
Permiten eliminar las posibles ambigedades en la definicin
de los elementos que constituyen un documento XML
<?xml version="1.0"?>
<librera xmlns:libro="http://www.zyx.com/libros/"
xmlns:escritor="http://www.yyz.com/escritores/" >

... <libro:titulo> El Seor de los Anillos </libros:titulo>


... <escritor:titulo> Doctor </escritores:titulo> ...

</librera>

12

Parte 2
Tecnologas XML

13

Document Type Definition (DTD)


Una DTD define el formato de un documento XML
Tomaremos como base el ejemplo anterior:
<?xml version="1.0"?>
<Curso>
<Materia>Arquitectura</Materia>
<Carrera>Lic. Adm. y Sistemas</Carrera>
<Titular>
<NombreTitular>xxxx</NombreTitular>
</Titular>
<Alumno>
<NombreAlumno>yyyy</NombreAlumno>
</Alumno>
<Alumno>
<NombreAlumno>zzzz</NombreAlumno>
</Alumno>
</Curso>

Curso

Materia

Carrera

La DTD correspondiente se muestra en la siguiente pgina.

14

Titular

Alumno

NombreTitular

NombreAlumno

Document Type Definition (DTD)


La DTD para el ejemplo sera:
<!ELEMENT Curso (Materia, Carrera, Titular+, Alumno*)>
<!ELEMENT Materia (#PCDATA)>
<!ELEMENT Carrera (#PCDATA)>
<!ELEMENT Titular (NombreTitular)>
<!ELEMENT NombreTitular (#PCDATA)>
<!ELEMENT Alumno (NombreAlumno)>
<!ELEMENT NombreAlumno (#PCDATA)>

Y se especifica as dentro del documento XML:


<?xml version="1.0"?>
<!DOCTYPE Course SYSTEM "course.dtd">
<Course>
<Name>Java Programming</Name>
<Department>EECS</Department>
etc

15

DTD, definicin de atributos


Para el ejemplo que vimos antes:
<empleado tipo=contratado>
<apellido> Prez </apellido>
<nombre> Juan </nombre>
<legajo> 022114 </legajo>
</empleado>

La DTD sera:
empleado.dtd
<!ELEMENT Empleado (apellido, nombre,legajo)>
<!ATTLIST Empleado type (regular|contratado)#REQUIRED>
16

XML Schemas (XSL)


Otra especificacin para definir formatos de documentos XML. Es ms
nueva que DTD, y tiene varias ventajas:
Usa sintaxis XML (la DTD no)
Permite especificar el tipos de datos
Tipos primitivos (string, boolean, UriReference, float, date, time, etc)
Tipos creados por los usuarios

Permite definirle limitaciones al contenido


Valores mnimos / mximos
Lista de valores posibles
Patterns (Ej: longitud, combinaciones de letras y nmeros, etc)

Ms rico y complejo que DTDs


Sin embargo XSL es ms complejo que DTD, y por esta razn las DTDs se
siguen utilizando en muchos casos

17

Ejemplo: documento XML


(ver el XML Schema en pgina siguiente)

18

XML Schema

19

Otro ejemplo de XML Schema (1 de 2)

20

Otro ejemplo de XML Schema (2 de 2)

21

Extensible Stylesheet Language Transformation (XSLT)


Permite transformar un documento XML
En una pgina HTML
En otro documento XML
En un archivo de texto, en pdf, etc

Un procesador de XSLT analiza el documento XML


y aplica las transformaciones especificadas en la
stylesheet (XSLT code)

22

Analizadores de XML (parsers)


Dos modelos bsicos para el anlisis (parsing)
DOM (Document Object Model): estndar W3C
SAX (Simple API for XML): estndar de facto

Ninguno de los dos es de uso obligatorio


Existen otros parsers, algunos menos genricos

Hay implementaciones de DOM y de SAX en diversos lenguajes


(C++, Java, etc) disponibles para ser utilizados en los programas

23

DOM (Document Object Model)


Construye en memoria el rbol completo que representa el documento XML
El rbol es accedido despus a travs de una API
Permite:
Acceso random a todo el documento XML
Edicin e incluso creacin de un documento

Ventaja: permite avanzar y retrodecer dentro del documento


Desventaja: usa una cantidad considerable de memoria y de CPU

24

SAX (Simple API for XML)


Mecanismo basado en eventos para streams de datos XML
Accede en forma secuencial al documento XML y notifica al aplicativo
de la ocurrencia de cada evento
Ejemplos de eventos: startDocument, startElement, endElement

Ms sencillo y rpido que DOM


Usa una cantidad limitada de memoria, independientemente del
tamao del documento

25

DOM vs SAX

26