Title: MANEJO DE DOCUMENTOS XML EN MHP
1MANEJO DE DOCUMENTOS XML EN MHP
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
3Origen 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
4Origen 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
5Origen 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
7Principales 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
9Estructura de un documento XML (1/8)
- Declaración de un documento XML
- Sintaxis
- Contenido
- Ejemplo
10Estructura 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.
11Estructura de un documento XML (3/8)
- Declaración de un documento XML
- Sintaxis
- Contenido
- Ejemplo
12Estructura 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 )
13Estructura de un documento XML (5/8)
- Declaración de un documento XML
- Sintaxis
- Contenido
- Ejemplo
14Estructura 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
15Estructura de un documento XML (7/8)
- Declaración de un documento XML
- Sintaxis
- Contenido
- Ejemplo
16Estructura 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
18Definició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
19Definició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
20Definició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
21Definició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
22Definició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)
23Definició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
25Tipos 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
27Utilizació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
28Utilizació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.
29Utilizació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
30Utilizació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
31Utilizació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
32Utilizació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
33Utilizació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
35Qué 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
37Metodologí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
38Metodologí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
39Introducció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
40Metodologí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
41El 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.
42Metodologí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
43Introducció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
44Metodologí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
45El 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
47El 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
48Introducció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
49El 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
50NanoXML 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
51El 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
52Aná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
53El 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
54Carga 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()
55El 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
56Acceso 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.
57El 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
58Acceso 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()
59El 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
60Acceso 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)
61El 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
62Lectura 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()
63El 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
64Acceso 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
66Bibliografí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
67Gracias por su atención