manejo de documentos xml en mhp leire urriza oiz

67
MANEJO DE DOCUMENTOS XML EN MHP MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

Upload: jaime-moncayo

Post on 11-Jan-2015

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

MANEJO DE DOCUMENTOS XML EN MANEJO DE DOCUMENTOS XML EN MHPMHP

Leire Urriza Oiz

Page 2: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .2E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 3: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .3E.T.S de Ingenieros de Telecomunicación

Origen y comparación con HTML (1/3)

XML (eXtensible Markup Language) significa lenguaje de marcas generalizadoEs un metalenguaje lenguaje compuesto por

elementos descriptivos que sirve para definir lenguajes

• Conjunto de reglas para definir etiquetas necesarias para organizar un documento.

Uso: Estructurar información en un documentoBasado en el estándar SGML creado por IBM

• Se derivan HTML y XML– HTML orientado a la presentación de datos– XML orientado a los datos en sí mismos

• HTML y XML son complementarios

Page 4: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .4E.T.S de Ingenieros de Telecomunicación

Origen y comparación con HTML (2/3)

Código XML

<comedor><mesa tipo="redonda" madera="arce">

<fabricante>Muebles Albacete</fabricante>

<precio>40000</precio></mesa>

<silla madera="arce">

<cantidad>2</cantidad>

<calidad>excelente</calidad> <cojin incluido="sí"> <color>azul</color> </cojin> </silla>

<silla madera="roble"> <cantidad>3</cantidad>

<calidad>normal</calidad> </silla></comedor>

Código HTML

<h1>Comedor</h1><ul>

<li><b>Mesa redonda de

madera de arce</b>. El fabricante es

<i>Muebles Albacete</i> y su precio 40000.

</li>

<li> <b>Dos sillas de madera de

arce</b>, de excelente calidad, con un

coj&iacute;n azul cada una. </li>

<li><b>3 sillas de madera de

roble</b>. </li></ul>

Page 5: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .5E.T.S de Ingenieros de Telecomunicación

Origen y comparación con HTML (3/3)

Código XML

Orientado a los datos en si mismos

No define: Etiquetas ni cómo se utilizan

Define: Reglas sintácticas para crear

documentos (es un metalenguaje)

Sirve para representar e intercambiar datos independientemente de su presentación

Código HTML

Orientado a la presentación de datos

Define: Conjunto de etiquetas y atributos

válidos Utilización válida de estos

elementos Significado visual para cada

elemento del lenguaje Sirve para presentar información

en páginas web

HTML y XML son complementariosHTML y XML son complementarios

Page 6: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .6E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 7: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .7E.T.S de Ingenieros de Telecomunicación

Principales usos de XML

XML aplicado a sitios webPermite separar contenido y presentaciónLos mismos datos se pueden mostrar de distintas

formas sin demasiado esfuerzo

XML para la comunicación entre aplicacionesRepresentación de los datos muy simple y fácil de

transmitir por la red

XML para la configuración de programasRepresentación de los datos simple y estándar.

Page 8: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .8E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 9: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .9E.T.S de Ingenieros de Telecomunicación

Estructura de un documento XML (1/8)

Declaración de un documento XML

Sintaxis

Contenido

Ejemplo

Page 10: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .10E.T.S de Ingenieros de Telecomunicación

Estructura de un documento XML (2/8)Declaración de un documento XML

Para crear un documento XML solo se necesita: Un procesador de textos Guardar el documento con extensión .xml

Para identificar un fichero como XML, la primera línea del documento debe ser:<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>

donde: version versión de XML usada en el documento. La actual es

la versión 1.0. encoding forma en que se ha codificado el documento.

• Por defecto: UTF-8 alfabeto Unicode• Para documentos en español mejor ISO-8859-1 alfabeto latin-1

standalone indica si el documento va acompañado de un DTD (“no”) o no lo necesita (“yes”). No hay porqué ponerlo ya que luego se indica el DTD si se necesita.

Page 11: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .11E.T.S de Ingenieros de Telecomunicación

Estructura de un documento XML (3/8)

Declaración de un documento XML

Sintaxis

Contenido

Ejemplo

Page 12: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .12E.T.S de Ingenieros de Telecomunicación

Estructura de un documento XML (4/8)Sintaxis

Aspectos a tener en cuenta: Sensibilidad a las MAYÚSCULAS se diferencia entre

MAYÚSCULAS y minúsculas. Existen 5 caracteres especiales que forman parte de la sintaxis

de XML:• Menor que <, para representarlo usar la entidad &lt;• Mayor que >, para representarlo usar la entidad &lg;• Ampersand &, para representarlo usar la entidad &amp;• Dobles comillas “, para representarlo usar la entidad &quot;• Apóstrofe ‘, para representarlo usar la entidad &apos;

& es un carácter especial que se usa para representar entidades:

• Entidad: carácter adicional que no forma parte del alfabeto usado por defecto en el texto.

– Comienza por & seguido del nombre de la entidad e inmediatamente un punto y coma.

Los valores de los atributos de todas las etiquetas deben ir siempre entrecomillados (“ o ‘)

Page 13: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .13E.T.S de Ingenieros de Telecomunicación

Estructura de un documento XML (5/8)

Declaración de un documento XML

Sintaxis

Contenido

Ejemplo

Page 14: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .14E.T.S de Ingenieros de Telecomunicación

Estructura de un documento XML (6/8)Contenido

Un documento XML está compuesto por elementos que se representan mediante etiquetas: Elementos son las entidades en sí, lo que tiene contenido

• Vacíos: no tienen contenido dentro del documento• No vacíos

Etiquetas describen a los elementos. Es deseable que sus nombres no contengan ni espacios ni caracteres especiales.

• Toda etiqueta no vacía debe tener una etiqueta de cerrado<etiqueta>contenido de la etiqueta</etiqueta>

• Orden jerárquico<UPNA><departamento>Ingeniería Eléctrica y Electrónica</UPNA></departamento><UPNA><departamento>Ingeniería Eléctrica y Electrónica</departamento></UPNA>

• Pueden contener atributos<UPNA><departamento id ='1'>Ingeniería Eléctrica y Electrónica</departamento></UPNA>

• La decisión entre especificar– Elemento descendiente – Atributos

queda a discreción del diseñador

Page 15: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .15E.T.S de Ingenieros de Telecomunicación

Estructura de un documento XML (7/8)

Declaración de un documento XML

Sintaxis

Contenido

Ejemplo

Page 16: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .16E.T.S de Ingenieros de Telecomunicación

Estructura de un documento XML (8/8)Ejemplo

<?xml version="1.0" encoding="iso-8859-1" ?> <servicio>

<evento id = '1'><titulo>Novela: Felisinda (Capítulo 550). Capítulo repetido por fallos en el

sistema</titulo><horaInicio>Hora inicio: 15:30h</horaInicio><horaFin>Hora fin: 16:30h</horaFin><resumen>RESUMEN: En el capitulo de hoy Felisinda no puede reprimir la tentacion

de usurpar el sillón de su jefe. Esto traerá consecuencias que ni ella misma imagina...</resumen>

<video><rectanguloOrigen>

<x>0</x><y>0</y><ancho>720</ancho><alto>576</alto>

</rectanguloOrigen><rectanguloDestino>

<x>50</x><y>320</y><ancho>280</ancho><alto>200</alto>

</rectanguloDestino><localizadorDestino>dvb://1.3.1.65</localizadorDestino>

</video><audio dvb = '1'>

<localizadorDestino>dvb://1.3.1.68</localizadorDestino></audio>

</evento></servicio>

Page 17: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .17E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 18: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .18E.T.S de Ingenieros de Telecomunicación

Definición del tipo de documento (DTD) (1/6)

DTD (Document Type Definition)Define:

• Elementos que puede incluir un documento XML• Forma en que deben hacerlo (qué elementos van dentro de

otros)• Atributos que se les pueden dar

Existen dos formas de referenciar un DTD en un documento XML:

• Referencia en forma de URL• DTD dentro del propio documento XML

Page 19: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .19E.T.S de Ingenieros de Telecomunicación

Definición del tipo de documento (DTD) (2/6)Referencia en forma de URL

Ejemplo:<!DOCTYPE servicio SYSTEM "http://www.dat.etsit.upm.es/~abarbero/DTD/servicio.dtd">

donde:Se usa la declaración <!DOCTYPE Nombre del documento nombre del elemento raíz

del documento XMLPalabra SYSTEM indica que el DTD se obtendrá a

partir de un elemento externoURL en la que se encuentre el DTD entrecomillada

Page 20: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .20E.T.S de Ingenieros de Telecomunicación

Definición del tipo de documento (DTD) (3/6)

DTD (Document Type Definition)Define:

• Elementos que puede incluir un documento XML• Forma en que deben hacerlo (qué elementos van dentro de

otros)• Atributos que se les pueden dar

Existen dos formas de referenciar un DTD en un documento XML:

• Referencia en forma de URL• DTD dentro del propio documento XML

Page 21: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .21E.T.S de Ingenieros de Telecomunicación

Definición del tipo de documento (DTD) (4/6)DTD dentro del propio XML (1/3)

Ejemplo:<?xml version="1.0"?><!DOCTYPE servicio [

<!ELEMENT evento (imagenTitulo?,titulo?,horaInicio?,horaFin?,resumen?,video,audio?)><!ATTLIST evento id CDATA #REQUIRED><!ELEMENT imagenTitulo (#PCDATA)><!ELEMENT titulo (#PCDATA)><!ELEMENT horaInicio (#PCDATA)><!ELEMENT horaFin (#PCDATA)><!ELEMENT resumen (#PCDATA)><!ELEMENT video (rectanguloOrigen?,rectanguloDestino?,localizadorDestino?)>

<!ELEMENT rectanguloOrigen (x?,y?,ancho?,alto?)><!ELEMENT x (#PCDATA)>

<!ELEMENT y (#PCDATA)>

<!ELEMENT ancho (#PCDATA)><!ELEMENT alto (#PCDATA)>

<!ELEMENT rectanguloDestino (x?,y?,ancho?,alto?)><!ELEMENT x (#PCDATA)>

<!ELEMENT y (#PCDATA)>

<!ELEMENT ancho (#PCDATA)><!ELEMENT alto (#PCDATA)>

<!ELEMENT localizadorDestino (#PCDATA)><!ELEMENT audio (localizadorDestino?)>

<!ATTLIST audio dvb CDATA #REQUIRED><!ELEMENT localizadorDestino (#PCDATA)>

]>

Definir elemento

Nombre elemento

Tipo de datos

Elementos descendientes

Opcional pero singularDefinir

atributo

Nombre del elementodel que se declara

el atributo

Nombre atributo Posibles valores del atributo o CDATA

obligatorio

Page 22: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .22E.T.S de Ingenieros de Telecomunicación

Definición del tipo de documento (DTD) (5/6)DTD dentro del propio XML (2/3)

Se usa la sentencia <!DOCTYPE pero en vez de la URL se incluye el propio DTD entre los símbolos ‘[’ y ’]’ (todo lo que hay entre ellos se considera parte del DTD)

Notas: Para definir un elemento se usa la declaración <!ELEMENT seguida

del nombre del elemento y entre paréntesis:• Tipo de datos que contiene (#PCDATA, para alfanumérico)• Elementos descendientes:

– Caracteres especiales:» + obligatorio y múltiple» * opcional y múltiple» ? opcional pero singular» | un elemento y solo uno de entre los que forman la expresión

Para definir un atributo se usa la declaración <!ATTLIST seguida de:• Nombre del elemento del que se está declarando el atributo• Nombre del propio atributo• Posibles valores del atributo (separados por |) o CDATA para indicar

cualquier valor• Valor por defecto entrecomillado (opcional)• #REQUIRED (obligatorio), #IMPLIED (no obligatorio), #FIXED (fijo)

Page 23: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .23E.T.S de Ingenieros de Telecomunicación

Definición del tipo de documento (DTD) (6/6)DTD dentro del propio XML (3/3)

Ejemplo de XML que cumpliría el DTD anterior:<servicio>

<evento id = '1'>

<titulo>Novela: Felisinda (Capítulo 550). Capítulo repetido por fallos en el sistema</titulo>

<horaInicio>Hora inicio: 15:30h</horaInicio>

<horaFin>Hora fin: 16:30h</horaFin>

<resumen>RESUMEN: En el capitulo de hoy Felisinda no puede reprimir la tentacion de usurpar el sillón de su jefe.

Esto traerá consecuencias que ni ella misma imagina...</resumen>

</evento>

</servicio>

Page 24: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .24E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 25: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .25E.T.S de Ingenieros de Telecomunicación

Tipos de documentos XML

Existen dos tipos de documentos XML:Bien formados

• Cumplen especificaciones del lenguaje (reglas sintácticas)• No están sujetos a unos elementos fijados en un DTD

Válidos• Están bien formados (cumplen reglas sintácticas)• Siguen estructura y semántica determinada por un DTD

Page 26: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .26E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 27: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .27E.T.S de Ingenieros de Telecomunicación

Utilización de XML en el ámbito de MHP (1/7)

Tres campos de actividad en los cuales XML juega un papel importante:En la propia norma MHP

En la caracterización de la metainformación de contenidos

En el ámbito de la implementación de aplicaciones

Page 28: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .28E.T.S de Ingenieros de Telecomunicación

Utilización de XML en el ámbito de MHP (2/7)En la propia norma MHP

En la propia norma MHP:Frecuentemente el intercambio de información entre

entidades se resuelve usando aplicaciones XML que estructuran los datos a enviar.

• Solicitud de permisos fichero XML en el que se relacionan todos los componentes que es necesario almacenar

• Almacenamiento local de aplicaciones fichero XML en el que se relacionan todos los componentes que es necesario almacenar

• Interactividad con aplicaciones descargadas (acceso a Internet a través de TV, “super-teletexto”…) usan dos aplicaciones XML para implementación del envío de mensajes de sincronización.

Page 29: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .29E.T.S de Ingenieros de Telecomunicación

Utilización de XML en el ámbito de MHP (3/7)

Tres campos de actividad en los cuales XML juega un papel importante:En la propia norma MHP

En la caracterización de la metainformación de contenidos

En el ámbito de la implementación de aplicaciones

Page 30: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .30E.T.S de Ingenieros de Telecomunicación

Utilización de XML en el ámbito de MHP (4/7)En la caracterización de la metainformación de

contenidos

En la caracterización de la metainformación de contenidos:En el ámbito de TV Digital, el proyecto mas

significativo es el promovido por el foro TV-AnytimeEl incremento desmesurado de contenidos y la

dificultad de encontrar lo que se busca desarrollo de mecanismos para caracterizar contenidos y permitir referenciarlos independientemente de su localización y fecha de emisión.

• El objetivo principal es separar la información que describe a los contenidos de aquella otra necesaria para su adquisición e independizar todo esto del mecanismo de transporte

Page 31: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .31E.T.S de Ingenieros de Telecomunicación

Utilización de XML en el ámbito de MHP (5/7)

Tres campos de actividad en los cuales XML juega un papel importante:En la propia norma MHP

En la caracterización de la metainformación de contenidos

En el ámbito de la implementación de aplicaciones

Page 32: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .32E.T.S de Ingenieros de Telecomunicación

Utilización de XML en el ámbito de MHP (6/7)En el ámbito de la implementación de aplicaciones (1/2)

En el ámbito de la implementación de aplicaciones:La estructura de información modelada mediante las

aplicaciones XML puede abarcar desde los elementos descriptores de la red de difusión hasta los componentes de las aplicaciones interactivas disponibles en cada canal de televisión. Por ejemplo:

Page 33: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .33E.T.S de Ingenieros de Telecomunicación

Utilización de XML en el ámbito de MHP (7/7)En el ámbito de la implementación de aplicaciones (2/2)

Limitando la descripción a las entidades más importantes, se puede otorgar el papel de elemento raíz del sistema a la entidad “red de difusión”. Este elemento estaría compuesto por varios flujos de

transporte.• Cada flujo de transporte, a su vez, estaría formado por los

diferentes servicios (canales de televisión)

Page 34: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .34E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 35: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .35E.T.S de Ingenieros de Telecomunicación

¿Qué es un parser?

El parser es para XML como un sistema operativo a una computadora: IMPRESCINDIBLE

Herramienta utilizada para procesar cualquier documento, estructura o fragmento en XML Realiza el trabajo sucio:

• Detectar principio y fin de un elemento• Gestionar espacios de nombres• Comprobar que el documento está bien formado

El diseñador de aplicaciones sólo debe concentrarse en aspectos específicos de la aplicación

Existen diversos parsers para diversos lenguajes información residente en XML puede ser procesada en un ambiente de programación específico, en nuestro caso invocando métodos en Java Pasar un documento XML a clases de Java es un proceso de parsing.

Cuando se procesa cualquier información XML, lo primero es comprobar si está bien formada y luego, si incluye referencia a un DTD, comprobar que sigue sus reglas gramaticales. Hay pues diferencia entre los parsers: Parsers no validadores no comprueban si se siguen reglas de un DTD Parsers validadores comprueban que se atiende a un DTD y es válido

Page 36: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .36E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 37: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .37E.T.S de Ingenieros de Telecomunicación

Metodologías de manipulación de documentos XML (1/2)

El W3C (World Wide Web Consortium) ha especificado dos mecanismos para acceder a documentos XML y trabajar con ellos. SAX (Simple API for XML)

• Se utiliza para hacer un recorrido secuencial de los elementos del documento XML

DOM (Document Object Model)• Implica la creación de un árbol en memoria que contiene el

documento XML y así, con él en memoria, poder hacer cualquier tipo de recorrido y acciones con los elementos que se desee

En el caso de Java, SUN Microsystems provee las API’s para que los desarrolladores cuenten con las clases necesarias para programar con XML

Page 38: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .38E.T.S de Ingenieros de Telecomunicación

Metodologías de manipulación de documentos XML (2/2)

API’s existentes en Java para trabajar con documentos XML:SAX (Simple API for XML)

• Introducción a SAX• El parser SAX

DOM (Document Object Model)• Introducción a DOM• El parser DOM

Page 39: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .39E.T.S de Ingenieros de Telecomunicación

Introducción a SAX

API SAX es el primer punto de unión del mundo XML con el mundo de la programación en general, y en particular con Java

Principales características: El documento se lee secuencialmente de principio a fin SAX procesa la información en XML conforme esta sea presentada

(evento por evento), manipulando cada elemento en un determinado instante, sin incurrir en un uso excesivo de memoria.

No se carga todo el documento en memoria Ventajas:

Sencillo y rápido de utilizar Eficiencia en cuanto al tiempo y la memoria empleados en el sistema

• Ideal para manipular documentos XML de gran tamaño

Desventajas: No se dispone de la estructura en árbol de los documentos XML No se puede recorrer jerárquicamente, solo análisis secuencial

Page 40: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .40E.T.S de Ingenieros de Telecomunicación

Metodologías de manipulación de documentos XML (2/2)

API’s existentes en Java para trabajar con documentos XML:SAX (Simple API for XML)

• Introducción a SAX• El parser SAX

DOM (Document Object Model)• Introducción a DOM• El parser DOM

Page 41: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .41E.T.S de Ingenieros de Telecomunicación

El parser SAX

Para poder trabajar con documentos XML mediante SAX es necesario un parser SAX

Uso de SAX desde Java: Conseguir clases que componen el parser Incluir estas clases en la ruta de clases

Muchos parsers en el mercado Xerces para Java de Apache No ha sido el parser utilizado en el presente proyecto.

• Gran tamaño inviable en el entorno de la televisión digital.– Hay que incluir la librería del parser al generar el transport stream

En el presente proyecto, se ha optado por usar el parser NanoXML.

Page 42: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .42E.T.S de Ingenieros de Telecomunicación

Metodologías de manipulación de documentos XML (2/2)

API’s existentes en Java para trabajar con documentos XML:SAX (Simple API for XML)

• Introducción a SAX• El parser SAX

DOM (Document Object Model)• Introducción a DOM• El parser DOM

Page 43: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .43E.T.S de Ingenieros de Telecomunicación

Introducción a DOM

La API DOM constituye un paso más allá en el uso de XML desde un lenguaje de programación, y en particular desde Java

Principal característica: El documento se carga entero en memoria en una estructura de árbol

Ventajas: Se puede acceder a los datos en función de la jerarquía de los

elementos Se puede agregar un nodo (información) en cualquier punto del árbol Se puede eliminar información de un nodo en cualquier punto del árbol Se pueden crear documentos desde cero

Desventajas: Coste (en tiempo y memoria) que conlleva construir el árbol para un

documento, sobre todo si tiene cierto tamaño• Ideal para manipular documentos XML de poco tamaño

Page 44: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .44E.T.S de Ingenieros de Telecomunicación

Metodologías de manipulación de documentos XML (2/2)

API’s existentes en Java para trabajar con documentos XML:SAX (Simple API for XML)

• Introducción a SAX• El parser SAX

DOM (Document Object Model)• Introducción a DOM• El parser DOM

Page 45: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .45E.T.S de Ingenieros de Telecomunicación

El parser DOM

Para poder trabajar con documentos XML mediante DOM es necesario un parser DOM (se suele apoyar en un parser SAX)

Uso de DOM desde Java: Conseguir clases que componen el parser Incluir estas clases en la ruta de clases

Muchos parsers en el mercado Xerces para Java de Apache

• El mismo que se comentó en SAX pero importando las clases oportunas para trabajar con DOM

No ha sido el parser utilizado en el presente proyecto.• Gran tamaño inviable en el entorno de la televisión digital.

– Hay que incluir la librería del parser al generar el transport stream En el presente proyecto, se ha optado por usar el parser

NanoXML.

Page 46: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .46E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 47: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .47E.T.S de Ingenieros de Telecomunicación

El parser NanoXML

Introducción a NanoXMLNanoXML 2Análisis de un documento XML con NanoXML

Carga de un documento XMLAcceso y análisis de contenido

• Acceso al nombre de un IXMLElement• Acceso a un atributo de un IXMLElement• Lectura del contenido de un IXMLElement• Acceso a un elemento descendiente de un IXMLElement

Page 48: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .48E.T.S de Ingenieros de Telecomunicación

Introducción a NanoXML

Aparición en abril de 2000 Propósito:

Ser un pequeño parser fácil de usar• Parsers SAX y DOM eran demasiado complejos para ciertas

necesidades y, o bien eran demasiado grandes o tenían una licencia muy restrictiva

Versión 1 de NanoXMLMuy pequeño (unos 6K)Razonablemente rápido para documentos XML

pequeñosSencillo de usarGratis

Page 49: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .49E.T.S de Ingenieros de Telecomunicación

El parser NanoXML

Introducción a NanoXMLNanoXML 2Análisis de un documento XML con NanoXML

Carga de un documento XMLAcceso y análisis de contenido

• Acceso al nombre de un IXMLElement• Acceso a un atributo de un IXMLElement• Lectura del contenido de un IXMLElement• Acceso a un elemento descendiente de un IXMLElement

Page 50: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .50E.T.S de Ingenieros de Telecomunicación

NanoXML 2

Aparición en junio de 2001 Aunque le fueron añadidas bastantes características respecto a la

versión 1, seguía siendo muy pequeño (unos 32K) Existen tres implementaciones de NanoXML 2

NanoXML/Lite• Sucesor de NanoXML 1• Funcionalidad limitada

– No soporta contenidos mezclados– Se ignora el DTD

• Las clases de este parser se encuentran en el paquete nanoxml NanoXML/Java

• Es el parser estándar• Funcionalidad amplia

– Permite crear, modificar y validar documentos+• Las clases de este parser se encuentran en el paquete net.n3.nanoXML

NanoXML/SAX• Es el adaptador SAX para NanoXML/Java• Las clases de este parser se encuentran en el paquete net.n3.nanoXML.sax

Page 51: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .51E.T.S de Ingenieros de Telecomunicación

El parser NanoXML

Introducción a NanoXMLNanoXML 2Análisis de un documento XML con NanoXML

Carga de un documento XMLAcceso y análisis de contenido

• Acceso al nombre de un IXMLElement• Acceso a un atributo de un IXMLElement• Lectura del contenido de un IXMLElement• Acceso a un elemento descendiente de un IXMLElement

Page 52: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .52E.T.S de Ingenieros de Telecomunicación

Análisis de un documento XML con NanoXML

El análisis de un documento XML mediante el parser NanoXML se puede dividir en dos partes:Una primera parte consistente en cargar el

documento XML desde su ubicación en el Object Carousel y analizarlo.

Una segunda parte consistente en acceder y analizar los datos del árbol creado en la primera parte

Page 53: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .53E.T.S de Ingenieros de Telecomunicación

El parser NanoXML

Introducción a NanoXMLNanoXML 2Análisis de un documento XML con NanoXML

Carga de un documento XMLAcceso y análisis de contenido

• Acceso al nombre de un IXMLElement• Acceso a un atributo de un IXMLElement• Lectura del contenido de un IXMLElement• Acceso a un elemento descendiente de un IXMLElement

Page 54: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .54E.T.S de Ingenieros de Telecomunicación

Carga de un documento XML

Pasos a seguir para cargar un documento XML desde el Object Carousel Crear el parser XML

IXMLParser procesador = XMLParserFactory.createDefaultXMLParser();

Crear el reader estándar que leerá los datos desde el documento XML y alimentar con él el parser. Normalmente se puede usar un StdXMLReader para alimentar el parser con los datos.IXMLReader lector = StdXMLReader.fileReader("teletexto.xml");procesador.setReader(lector);

Hacer que el parser XML analice los datos leídos desde el documento XML y cree un árbol con estos elementos analizados.IXMLElement xml = (IXMLElement) procesador.parse();

Una vez hecho esto, si se invocara al método getName() de la instancia xml anterior, se obtendría el nombre del primer tag del documento XML.String nombrePrimerTag = xml.getName();

Page 55: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .55E.T.S de Ingenieros de Telecomunicación

El parser NanoXML

Introducción a NanoXMLNanoXML 2Análisis de un documento XML con NanoXML

Carga de un documento XMLAcceso y análisis de contenido

• Acceso al nombre de un IXMLElement• Acceso a un atributo de un IXMLElement• Lectura del contenido de un IXMLElement• Acceso a un elemento descendiente de un IXMLElement

Page 56: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .56E.T.S de Ingenieros de Telecomunicación

Acceso y análisis de contenido

Esta parte no es tan mecánica, sino que dependerá de lo que el programador necesite

La tarea de recorrer el árbol no es difícil El StdXMLBuilder (constructor interno invocado al hacer

createDefaultXMLParser()) genera un árbol de objetos IXMLElement. Cada uno de estos objetos: Tiene un nombre Puede tener atributos Puede tener:

• Contenido• IXMLElement (elementos descendientes, hijos)

A continuación se explicará la forma de acceder a cada uno de estos contenidos teniendo en cuenta que estas acciones irán incluidas, normalmente, dentro de sentencias for, while, if/else, switch, que harán que la forma de extraer la información de los tags sea más útil para la aplicación.

Más información estudio más detallado y en profundidad del paquete net.n3.nanoxml para sacar el máximo partido al parser NanoXML.

Page 57: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .57E.T.S de Ingenieros de Telecomunicación

El parser NanoXML

Introducción a NanoXMLNanoXML 2Análisis de un documento XML con NanoXML

Carga de un documento XMLAcceso y análisis de contenido

• Acceso al nombre de un IXMLElement• Acceso a un atributo de un IXMLElement• Lectura del contenido de un IXMLElement• Acceso a un elemento descendiente de un IXMLElement

Page 58: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .58E.T.S de Ingenieros de Telecomunicación

Acceso al nombre de un IXMLElement

Para obtener el nombre de un IXMLElement Un IXMLElement no es más que cada uno de los tags

que componen el documento XML.

hay que invocar al método getName() del propio IXMLElement.

IXMLElement elemento;

String nombreElemento = elemento.getName();

Page 59: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .59E.T.S de Ingenieros de Telecomunicación

El parser NanoXML

Introducción a NanoXMLNanoXML 2Análisis de un documento XML con NanoXML

Carga de un documento XMLAcceso y análisis de contenido

• Acceso al nombre de un IXMLElement• Acceso a un atributo de un IXMLElement• Lectura del contenido de un IXMLElement• Acceso a un elemento descendiente de un IXMLElement

Page 60: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .60E.T.S de Ingenieros de Telecomunicación

Acceso a un atributo de un IXMLElement

Los pasos a seguir para acceder al contenido de un atributo de un IXMLElement son los siguientes: Invocar al método enumerateAttributeNames() del IXMLElement

para obtener una lista con los posibles atributos que contiene el IXMLElement. Después, invocando al método nextElement() de la lista se va accediendo a los elementos de la lista.

IXMLElement elemento;

Enumeration lista = elemento.enumerateAttributtesNames()

Object nombreAtributo = lista.nextElement();

Invocar al método getAttribute() del IXMLElement para acceder al contenido de un atributo en particular. Es necesario conocer el nombre del atributo.

String contenidoAtributo = elemento.getAttribute(nombreAtributo.toString(),null);

Page 61: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .61E.T.S de Ingenieros de Telecomunicación

El parser NanoXML

Introducción a NanoXMLNanoXML 2Análisis de un documento XML con NanoXML

Carga de un documento XMLAcceso y análisis de contenido

• Acceso al nombre de un IXMLElement• Acceso a un atributo de un IXMLElement• Lectura del contenido de un IXMLElement• Acceso a un elemento descendiente de un IXMLElement

Page 62: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .62E.T.S de Ingenieros de Telecomunicación

Lectura del contenido de un IXMLElement

La lectura del contenido de un IXMLElement es una tarea sencilla, únicamente hay que invocar al método getContent() del IXMLElement.

IXMLElement elemento;

String contenidoElemento = elemento.getContent();

Page 63: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .63E.T.S de Ingenieros de Telecomunicación

El parser NanoXML

Introducción a NanoXMLNanoXML 2Análisis de un documento XML con NanoXML

Carga de un documento XMLAcceso y análisis de contenido

• Acceso al nombre de un IXMLElement• Acceso a un atributo de un IXMLElement• Lectura del contenido de un IXMLElement• Acceso a un elemento descendiente de un IXMLElement

Page 64: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .64E.T.S de Ingenieros de Telecomunicación

Acceso a un elemento descendiente de un IXMLElement

Un IXMLElement puede tener elementos descendientes que también serán IXMLElement. Para acceder a ellos, básicamente hay dos formas:Acceso por índice:

IXMLElement primerTag = evento. getChildAtIndex(0);

String contenidoPrimerTag = primerTag.getContent();

Acceso por nombre:

IXMLElement tagResumen = evento.getFirstChildNamed("resumen");

String resumen = tagResumen.getContent();

Page 65: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .65E.T.S de Ingenieros de Telecomunicación

Índice

Introducción a XML Origen y comparación con HTML Principales usos de XML Estructura de un documento XML Definición del tipo de documento (DTD) Tipos de documentos XML

Utilización de XML en el ámbito de MHP Mapeo de XML a Java

¿Qué es un parser? Metodologías de manipulación de documentos XML:

• SAX• DOM

El parser NanoXML Bibliografía

Page 66: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/2006 .66E.T.S de Ingenieros de Telecomunicación

Bibliografía

Introducción a XML http://quark.fe.up.pt/cursoxml/curso.pdf http://www.dat.etsit.upm.es/~abarbero/curso/xml/xmltutorial.html http://www.mundotutoriales.com/tutoriales_xml-mdtema177.htm

• Apuntes de XML

NanoXML http://nanoxml.cyberelf.be/

Foros Enterprise Technologies - Java Technology & XML

• http://forum.java.sun.com/forum.jspa?forumID=34

Consumer and Commerce - Java TV• http://forum.java.sun.com/forum.jspa?forumID=36

Page 67: MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

Gracias por su atención