MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz.

Slides:



Advertisements
Presentaciones similares
2000.Nov.17 Introducción a XML Erich Bühler
Advertisements

CSS Rogelio Ferreira Escutia. 2 Hojas de estilo cascada, mayo 2010 Definición La hojas de estilo en cascada (en inglés.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO Resumen. 24 de Junio de 2005.
Interfases Contables en CIO
(eXtensible Mark-up Language)
¿QUÉ ES HTML? Hipertext Markup Language. Lenguaje de ordenador.
Cuestiones y problemas
Repaso desde HTML a XHTML
Curso : Programación Web 1 Profesor : Aníbal Martínez Aguas
HTML PROGRAMACION WEB.
Módulo de XML Facilitador: Ing. María de los A. Ugas N.
© 2007 Cisco Systems, Inc. All rights reserved. Traducido en apoyo a la capacitación de Instructores de la Red Proydesa Comunicación por la red Fundamentos.
1 XML Extensible Markup Language HTML HyperText Markup Language normas06_01.xml.
Trabajando con Centura y XML
XML y Servicios Web David Salgado MVP C#
Curso: XML, de los datos a la presentación CAPTIVA ·
DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB
Conceptos Generales XML.
Lenguaje de Marcado Extensible XML
CADENAS EN PHP.
Proyecto Fin de Carrera E.T.S. Ingeniería Informática 26 de Septiembre de 2006 DESARROLLO DE UN COMPONENTE TECLADO ALUMNO: Fco. Javier Sánchez Ramos TUTORES:
Hypertext Markup Language HTML
INTERFAZ DE ACCES DISEÑO DE BASE DE DATOS
1  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 1  2006 Universidad de Las Américas - Escuela de Ingeniería.
DISEÑO DE PAGINAS WEB Las páginas Web son documentos de hipertexto y multimedia. Son documentos multimedia que incorporan imágenes, videos, animaciones,
ESPECIFICACIÓN XML 1.0 Alberto Gimeno Arnal
04. Título, resumen y palabras clave
Introducción al desarrollo de proyectos RIA.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Ing. Cleyver Vazquez Jijon
HTML/CSS Mi primera página.
Estructura de Documento Atributos 1. Atributos Básicos id, class, style, title 2. Atributos para Internacionalización lang, xml:lang, dir 3. Atributos.
Hypertext Markup Language HTML
XML no predefine la apariencia de los elementos. Se requiere una descripción aparte mediante una hoja de estilo. XSL (eXtensible Stylesheet Language) es.
Título Características y elementos fundamentales J.M. Morales-del-Castillo.
HTML HyperText Markup Language (Lenguaje de Marcas de Hipertexto)
Empezar a trabajar con XML J.M. Morales-del-Castillo Título.
Características y elementos fundamentales J.M. Morales-del-Castillo
Definition Type Document (DTD)
Sistemas de marcado.
Lenguaje de Marcado.
 El primer navegador Web incluía un lenguaje de estilo interno que utilizaba dicho navegador para mostrar las páginas HTML.  Sin embargo estos primeros.
Hyper Text Markup Language Área de Programación y Metodologías de Desarrollo de Software Departamento de Informática Universidad Nacional de San Luis.
PHP TODO SOBRE PHP.
XML Corporación Universitaria de Ciencia y Desarrollo Ing. Andrés Vargas - W3C: XML es un.
Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · Introducción al mundo XML.
Tecnologías web. Es el método más común de intercambio de información en la world wide web, el método mediante el cual se transfieren las páginas web.
introducción al lenguaje
Introducción a XML por Joel Candia C Universidad Técnica Federico Santa María Departamento de Electrónica ELO-330 Programación de Sistemas.
XML. La vida antes de XML ► Comunicación ► Persistencia ► Armado de Documentos.
Tema 3: Estructura de los documentos XML, DTD Ricardo Eíto Brun Sevilla, de octubre 2002.
MIME EXTENSIONES DE CORREO INTERNET MULTIPROPÓSITO. SERIE DE ESPECIFICACIONES DIRIGIDAS AL INTERCAMBIO TRANSPARENTE DE TODO TIPO DE ARCHIVOS A TRAVÉS DE.
C.P. FREDIS ARRIETA BARROSO LA INFORMACION TRIBUTARIA EN MEDIOS ELECTRÓNICOS Y MAGNÉTICOS PARA LA U.A.E. D.I.A.N. AÑO GRAVABLE 2007.
HTML5 Es la quinta revisión importante del lenguaje básico de la world wide web, HTML. Al no ser reconocido en viejas versiones de navegadores por sus.
Profesora: Laura Patricia Pinto Prieto Ingeniera de sistemas Introducción a Programación 3.
Hypertext Markup Language HTML. OBJETIVOS Conocer los fundamentos de HTML Escribir HTML usando un editor sencillo Conocer las marcas HTML Visualizar el.
Desarrollo HTML, XHTML y CSS. Estructura de una página HTML Documento sin título.
¿Q UÉ ES XML? XML (eXtensible Markup Language)es un meta-lenguaje de codificación de información. Los programas que utilizan el formato XML pueden intercambiar.
HTML 5 Edgar Vázquez Ayala. Rolando Aarón Pérez Mandujano.
Práctica Profesional PHP.
Tecnologías Emergentes y los Negocios Unidad 4 – Diseño de Sites.
INTRODUCCIÓN AL HTML. VAMOS A HABLAR DE...HTML Conceptos del lenguaje Estructura para documentos Herramientas usadas para crear documentos Buenas prácticas.
Web y Multimedia II Integrantes: Piero Álvarez Mayra Atience Jhonney Bermeo Johanna Cabrera Gabriela Cango.
GML Geography Markup Language
Texto Marcado genérico del texto El estándar HTML incluye numerosas etiquetas para marcar los contenidos de texto. No obstante, la infinita variedad de.
USB-Ingeniería de Sistemas Programación en Internet Agosto 2015 Introducción al Html.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
HTML.
HTML.
Universidad Politecnica Salesiana Jose Luis Larreategui.
Transcripción de la presentación:

MANEJO DE DOCUMENTOS XML EN MHP Leire Urriza Oiz

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación Origen y comparación con HTML (1/3) XML (eXtensible Markup Language) significa lenguaje de marcas generalizado Es 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 documento Basado 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

18/10/ E.T.S de Ingenieros de Telecomunicación Origen y comparación con HTML (2/3) Código XML Muebles Albacete excelente azul 3 normal Código HTML Comedor Mesa redonda de madera de arce. El fabricante es Muebles Albacete y su precio Dos sillas de madera de arce, de excelente calidad, con un cojín azul cada una. 3 sillas de madera de roble.

18/10/ E.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 complementarios

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación Principales usos de XML XML aplicado a sitios web Permite separar contenido y presentación Los mismos datos se pueden mostrar de distintas formas sin demasiado esfuerzo XML para la comunicación entre aplicaciones Representación de los datos muy simple y fácil de transmitir por la red XML para la configuración de programas Representación de los datos simple y estándar.

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación Estructura de un documento XML (1/8) Declaración de un documento XML Sintaxis Contenido Ejemplo

18/10/ E.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: 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 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.

18/10/ E.T.S de Ingenieros de Telecomunicación Estructura de un documento XML (3/8) Declaración de un documento XML Sintaxis Contenido Ejemplo

18/10/ E.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 < Mayor que >, para representarlo usar la entidad &lg; Ampersand &, para representarlo usar la entidad & Dobles comillas, para representarlo usar la entidad " 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 )

18/10/ E.T.S de Ingenieros de Telecomunicación Estructura de un documento XML (5/8) Declaración de un documento XML Sintaxis Contenido Ejemplo

18/10/ E.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 contenido de la etiqueta Orden jerárquico Ingeniería Eléctrica y Electrónica Pueden contener atributos Ingeniería Eléctrica y Electrónica La decisión entre especificar –Elemento descendiente –Atributos queda a discreción del diseñador

18/10/ E.T.S de Ingenieros de Telecomunicación Estructura de un documento XML (7/8) Declaración de un documento XML Sintaxis Contenido Ejemplo

18/10/ E.T.S de Ingenieros de Telecomunicación Estructura de un documento XML (8/8) Ejemplo Novela: Felisinda (Capítulo 550). Capítulo repetido por fallos en el sistema Hora inicio: 15:30h Hora fin: 16:30h 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 dvb:// dvb://

18/10/ E.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

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación Definición del tipo de documento (DTD) (2/6) Referencia en forma de URL Ejemplo: donde: Se usa la declaración <!DOCTYPE Nombre del documento nombre del elemento raíz del documento XML Palabra SYSTEM indica que el DTD se obtendrá a partir de un elemento externo URL en la que se encuentre el DTD entrecomillada

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación Definición del tipo de documento (DTD) (4/6) DTD dentro del propio XML (1/3) Ejemplo: <!DOCTYPE servicio [ ]> Definir elemento Nombre elementoTipo de datosElementos descendientes Opcional pero singular Definir atributo Nombre del elemento del que se declara el atributo Nombre atributo Posibles valores del atributo o CDATA obligatorio

18/10/ E.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)

18/10/ E.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: Novela: Felisinda (Capítulo 550). Capítulo repetido por fallos en el sistema Hora inicio: 15:30h Hora fin: 16:30h 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...

18/10/ E.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

18/10/ E.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

18/10/ E.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

18/10/ E.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

18/10/ E.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.

18/10/ E.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

18/10/ E.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-Anytime El 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

18/10/ E.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

18/10/ E.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:

18/10/ E.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)

18/10/ E.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

18/10/ E.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

18/10/ E.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

18/10/ E.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 APIs para que los desarrolladores cuenten con las clases necesarias para programar con XML

18/10/ E.T.S de Ingenieros de Telecomunicación Metodologías de manipulación de documentos XML (2/2) APIs 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

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación Metodologías de manipulación de documentos XML (2/2) APIs 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

18/10/ E.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.

18/10/ E.T.S de Ingenieros de Telecomunicación Metodologías de manipulación de documentos XML (2/2) APIs 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

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación Metodologías de manipulación de documentos XML (2/2) APIs 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

18/10/ E.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.

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación El parser NanoXML Introducción a NanoXML NanoXML 2 Análisis de un documento XML con NanoXML Carga de un documento XML Acceso 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

18/10/ E.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 NanoXML Muy pequeño (unos 6K) Razonablemente rápido para documentos XML pequeños Sencillo de usar Gratis

18/10/ E.T.S de Ingenieros de Telecomunicación El parser NanoXML Introducción a NanoXML NanoXML 2 Análisis de un documento XML con NanoXML Carga de un documento XML Acceso 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

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación El parser NanoXML Introducción a NanoXML NanoXML 2 Análisis de un documento XML con NanoXML Carga de un documento XML Acceso 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

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación El parser NanoXML Introducción a NanoXML NanoXML 2 Análisis de un documento XML con NanoXML Carga de un documento XML Acceso 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

18/10/ E.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();

18/10/ E.T.S de Ingenieros de Telecomunicación El parser NanoXML Introducción a NanoXML NanoXML 2 Análisis de un documento XML con NanoXML Carga de un documento XML Acceso 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

18/10/ E.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.

18/10/ E.T.S de Ingenieros de Telecomunicación El parser NanoXML Introducción a NanoXML NanoXML 2 Análisis de un documento XML con NanoXML Carga de un documento XML Acceso 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

18/10/ E.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();

18/10/ E.T.S de Ingenieros de Telecomunicación El parser NanoXML Introducción a NanoXML NanoXML 2 Análisis de un documento XML con NanoXML Carga de un documento XML Acceso 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

18/10/ E.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);

18/10/ E.T.S de Ingenieros de Telecomunicación El parser NanoXML Introducción a NanoXML NanoXML 2 Análisis de un documento XML con NanoXML Carga de un documento XML Acceso 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

18/10/ E.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();

18/10/ E.T.S de Ingenieros de Telecomunicación El parser NanoXML Introducción a NanoXML NanoXML 2 Análisis de un documento XML con NanoXML Carga de un documento XML Acceso 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

18/10/ E.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();

18/10/ E.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

18/10/ E.T.S de Ingenieros de Telecomunicación Bibliografía Introducción a XML Apuntes de XML NanoXML Foros Enterprise Technologies - Java Technology & XML Consumer and Commerce - Java TV

Gracias por su atención