MANEJO DE DOCUMENTOS XML EN MHP - PowerPoint PPT Presentation

1 / 67
About This Presentation
Title:

MANEJO DE DOCUMENTOS XML EN MHP

Description:

Definici n del tipo de documento (DTD) Tipos de documentos XML ... Origen y comparaci n con HTML (1/3) ... Toda etiqueta no vac a debe tener una etiqueta de cerrado ... – PowerPoint PPT presentation

Number of Views:92
Avg rating:3.0/5.0
Slides: 68
Provided by: LeireU
Learn more at: http://www.mhproject.org
Category:

less

Transcript and Presenter's Notes

Title: MANEJO DE DOCUMENTOS XML EN MHP


1
MANEJO DE DOCUMENTOS XML EN MHP
  • Leire Urriza Oiz

2
Í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

3
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

4
Origen y comparación con HTML (2/3)
  • Código XML
  • ltcomedorgt
  • ltmesa tipo"redonda" madera"arce"gt
  • ltfabricantegtMuebles Albacetelt/fabricantegt
  • ltpreciogt40000lt/preciogt
  • lt/mesagt
  • ltsilla madera"arce"gt
  • ltcantidadgt2lt/cantidadgt ltcalidadgtexcelentelt/
    calidadgt
  • ltcojin incluido"sí"gt
  • ltcolorgtazullt/colorgt
  • lt/cojingt
  • lt/sillagt
  • ltsilla madera"roble"gt
  • ltcantidadgt3lt/cantidadgt ltcalidadgtnormallt/ca
    lidadgt
  • lt/sillagt
  • lt/comedorgt
  • Código HTML
  • lth1gtComedorlt/h1gt
  • ltulgt
  • ltligt
  • ltbgtMesa redonda de madera de arcelt/bgt.
  • El fabricante es ltigtMuebles Albacetelt/igt y
    su precio 40000.
  • lt/ligt
  • ltligt
  • ltbgtDos sillas de madera de arcelt/bgt, de
    excelente calidad, con un cojiacuten azul
    cada una.
  • lt/ligt
  • ltligt
  • ltbgt3 sillas de madera de roblelt/bgt.
  • lt/ligt
  • lt/ulgt

5
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
6
Í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

7
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.

8
Í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

9
Estructura de un documento XML (1/8)
  • Declaración de un documento XML
  • Sintaxis
  • Contenido
  • Ejemplo

10
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
  • lt?xml version"1.0" encoding"iso-8859-1"
    standalone"yes"?gt
  • 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.

11
Estructura de un documento XML (3/8)
  • Declaración de un documento XML
  • Sintaxis
  • Contenido
  • Ejemplo

12
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 Þ lt, para representarlo usar la entidad
    lt
  • Mayor que Þ gt, 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 )

13
Estructura de un documento XML (5/8)
  • Declaración de un documento XML
  • Sintaxis
  • Contenido
  • Ejemplo

14
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
  • ltetiquetagtcontenido de la etiquetalt/etiquetagt
  • Orden jerárquico
  • ltUPNAgtltdepartamentogtIngeniería Eléctrica y
    Electrónicalt/UPNAgtlt/departamentogt
  • ltUPNAgtltdepartamentogtIngeniería Eléctrica y
    Electrónicalt/departamentogtlt/UPNAgt
  • Pueden contener atributos
  • ltUPNAgtltdepartamento id '1'gtIngeniería Eléctrica
    y Electrónicalt/departamentogtlt/UPNAgt
  • La decisión entre especificar
  • Elemento descendiente
  • Atributos
  • queda a discreción del diseñador

15
Estructura de un documento XML (7/8)
  • Declaración de un documento XML
  • Sintaxis
  • Contenido
  • Ejemplo

16
Estructura de un documento XML (8/8)Ejemplo
  • lt?xml version"1.0" encoding"iso-8859-1" ?gt
  • ltserviciogt
  • ltevento id '1'gt
  • lttitulogtNovela Felisinda (Capítulo 550).
    Capítulo repetido por fallos en el
    sistemalt/titulogt
  • lthoraIniciogtHora inicio 1530hlt/horaIniciogt
  • lthoraFingtHora fin 1630hlt/horaFingt
  • ltresumengtRESUMEN 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...lt/resumengt
  • ltvideogt
  • ltrectanguloOrigengt
  • ltxgt0lt/xgt
  • ltygt0lt/ygt
  • ltanchogt720lt/anchogt
  • ltaltogt576lt/altogt
  • lt/rectanguloOrigengt
  • ltrectanguloDestinogt
  • ltxgt50lt/xgt
  • ltygt320lt/ygt
  • ltanchogt280lt/anchogt
  • ltaltogt200lt/altogt

17
Í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
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

19
Definición del tipo de documento (DTD)
(2/6)Referencia en forma de URL
  • Ejemplo
  • lt!DOCTYPE servicio SYSTEM "http//www.dat.etsit.u
    pm.es/abarbero/DTD/servicio.dtd"gt
  • donde
  • Se usa la declaración lt!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

20
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

21
Definición del tipo de documento (DTD) (4/6)DTD
dentro del propio XML (1/3)
  • Ejemplo
  • lt?xml version"1.0"?gt
  • lt!DOCTYPE servicio
  • lt!ELEMENT evento (imagenTitulo?,titulo?,horaInici
    o?,horaFin?,resumen?,video,audio?)gt
  • lt!ATTLIST evento id CDATA REQUIREDgt
  • lt!ELEMENT imagenTitulo (PCDATA)gt
  • lt!ELEMENT titulo (PCDATA)gt
  • lt!ELEMENT horaInicio (PCDATA)gt
  • lt!ELEMENT horaFin (PCDATA)gt
  • lt!ELEMENT resumen (PCDATA)gt
  • lt!ELEMENT video (rectanguloOrigen?,rectanguloDes
    tino?,localizadorDestino?)gt
  • lt!ELEMENT rectanguloOrigen (x?,y?,ancho?,alto?)
    gt
  • lt!ELEMENT x (PCDATA)gt
  • lt!ELEMENT y (PCDATA)gt
  • lt!ELEMENT ancho (PCDATA)gt
  • lt!ELEMENT alto (PCDATA)gt
  • lt!ELEMENT rectanguloDestino (x?,y?,ancho?,alto?
    )gt
  • lt!ELEMENT x (PCDATA)gt
  • lt!ELEMENT y (PCDATA)gt

22
Definición del tipo de documento (DTD) (5/6)DTD
dentro del propio XML (2/3)
  • Se usa la sentencia lt!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
    lt!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
    lt!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)

23
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
  • ltserviciogt
  • ltevento id '1'gt
  • lttitulogtNovela Felisinda (Capítulo 550).
    Capítulo repetido por fallos en el
    sistemalt/titulogt
  • lthoraIniciogtHora inicio 1530hlt/horaIniciogt
  • lthoraFingtHora fin 1630hlt/horaFingt
  • ltresumengtRESUMEN 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...lt/resumengt
  • lt/eventogt
  • lt/serviciogt

24
Í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

25
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

26
Í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

27
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

28
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.

29
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

30
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

31
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

32
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

33
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)

34
Í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

35
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

36
Í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

37
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

38
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

39
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

40
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

41
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.

42
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

43
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

44
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

45
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.

46
Í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

47
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

48
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

49
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

50
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

51
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

52
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

53
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

54
Carga de un documento XML
  • Pasos a seguir para cargar un documento XML desde
    el Object Carousel
  • Crear el parser XML
  • IXMLParser procesador XMLParserFactory.createDe
    faultXMLParser()
  • 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("tele
    texto.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()

55
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

56
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.

57
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

58
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()

59
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

60
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.enumerateAttributtes
    Names()
  • 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)

61
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

62
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()

63
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

64
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.getFirstChildName
    d("resumen")
  • String resumen tagResumen.getContent()

65
Í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

66
Bibliografía
  • Introducción a XML
  • http//quark.fe.up.pt/cursoxml/curso.pdf
  • http//www.dat.etsit.upm.es/abarbero/curso/xml/xm
    ltutorial.html
  • http//www.mundotutoriales.com/tutoriales_xml-mdte
    ma177.htm
  • Apuntes de XML
  • NanoXML
  • http//nanoxml.cyberelf.be/
  • Foros
  • Enterprise Technologies - Java Technology XML
  • http//forum.java.sun.com/forum.jspa?forumID34
  • Consumer and Commerce - Java TV
  • http//forum.java.sun.com/forum.jspa?forumID36

67
Gracias por su atención
Write a Comment
User Comments (0)
About PowerShow.com