Download Instituto Politécnico Nacional

Document related concepts
no text concepts found
Transcript
Instituto Politécnico Nacional
Escuela Superior De Cómputo
Web Application Development
Análisis XML con Java: 2
Grupo: 3CM2
Alumno: Ruiz Wence Luis David
Introducción:
La práctica consiste en ejecutar los códigos proporcionados y describir su
funcionamiento; de ser necesario se anexaran códigos adicionales. La ejecución
es hecha con ayuda del IDE NetBeans 6.9.1.
MakeDocumentWithFactory.java
El programa consiste crear un documento XML de manera interna, es decir, con
un objeto, e imprimirlo en consola.
Se utilizan objetos de la clase Element (que hereda de Node), los cuales cuentan
con el método appendChild(Node NewChild) para agregarles hijos a manera de
árbol. Estos hijos tienen diferentes implementaciones, ya sea como comentarios,
texto plano, o instrucciones para el parser.
Este código utiliza una implementación DOM para estructurar la creación en un
objeto Document, además de implementar la clase TXDocument (haciendo cast
implícito de Document) de XML4J (de IBM), como un objeto para facilitar la
impresión en consola del XML leído.
Ejecución:
Este archivo no requiere argumentos, por lo que su resultado es:
MakeDocumentWithFactory2.java
El programa realiza el mismo procesamiento que MakeDocumentWithFactory.java,
sin embargo utiliza un objeto de la clase Visitor (contenida en xss4j.jar) para la
imprimir en consola el contenido generado.
Ejecución:
Este archivo no requiere argumentos, por lo que su resultado es:
…
La impresión se realizó en una sola línea, por lo que la captura no puede visualizar
el resultado completo. Este método no estructura visualmente el archivo XML, algo
omisible para los parsers.
removeWSNode.java
El programa consiste en abrir un documento XML, y remover los espacios en
blanco. En DOM, el árbol creado a partir del XML conserva como nodos a los
espacios omisibles y saltos de línea, de esta manera, al visualizar la información
en consola se aprecia el documento tal cual fue escrito.
Se utiliza un algoritmo recursivo para eliminar todos los nodos cuya información
sea despreciable.
Este código utiliza una implementación DOM para estructurar la creación en un
objeto Document. Además utiliza un objeto de la clase DOMWriter para la
visualización en consola.
Ejecución:
Este programa utiliza el archivo department.xml:
Como se puede notar, incluye una cantidad de saltos de línea y sangrías
(espacios en blanco omisibles) para denotar la estructura jerárquica.
La ruta del archivo XLM es introducida por consola. Usando el archivo anterior el
resultado es:
…
La impresión se realizó en una línea para el encabezado y otra para el contenido,
por lo que la captura no puede visualizar el resultado completo. Con este método
se reduce la cantidad de información contenida en el árbol del XML, y la
información puede ser procesada de una mejor manera.
Para comprobar conservación de la información de los espacios en blanco, se
modificó la función recursiva para que imprima lo que va recorriendo. El resultado
es:
El texto se resaltó para denotar la existencia del la sangría y saltos de línea,
conservados tal cual por el árbol XML.
GeneratingSample.java
El programa consiste en abrir un documento DTD y simular la construcción de un
XML a partir de este, visualizando tanto mensajes en consola como un par de
ventanas a manera de GUI, que dan las opciones para introducir los componentes
así sea necesario u opcional.
Por medio de un parser se verifica el documento DTD, el cual es convertido a un
objeto de la clase DTD (definida en XML4J, de IBM), su contenido estructurado es
analizado para la construcción visual de un ejemplo XML generable con esa
definición.
Ejecución:
Se tiene el archivo department.dtd
La ruta del archivo DTD es introducida por consola. La pantalla inicial es:
Se puede empezar la construcción a partir de cualquier nivel, escogiendo el de
mayor jerarquía: department.
Como se observa, el ejemplo muestra la etiqueta insertada, con las opciones que
esta puede contener: employee o ninguna: tan como en la DTD
<!ELEMENT department (employee)*>
Se escoge agregar un elemento employee:
La única opción disponible es agregar un elemento name:
La definición de name incluye (#PCDATA) así que da la opción de introducir
cualquier texto o dejarlo vació si se desea. Se escoge agregar cualquier texto:
Se puede seguir agregando texto o se escoge la opción ‘End of content’ para
finalizar el agregado de ese elemento.
La definición de employee requiere que después de name se agregue ya sea un
email o url. Se agrega un email:
El elemento email tiene una definición como name, por lo que se crea de manera
análoga y se termina:
Se tiene un nuevo elemento employee, pero lo se agregará otro con diferente
estructura para demostrar las demás alternativas de estructura:
El nuevo elemento employee tiene a name sin contenido ni a url, pero este último
por su definición. Se termina de agregar contenido y se revisa la consola:
Todos los eventos de selección fueron registrados, incluyendo la terminación de
construcción.