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.