Detalle clase Documento Prácticas EDI - © Juan Ramón Pérez
Clase Documento Documento raiz: Elemento doc: URL create(URL) Constructor create(URL) analizarDoc() lanza ExcepcionAnalisis getRaiz(): Elemento getAltura(): entero getTamaño(): entero imprimir() serializar(OutputStream file) imprimirAHTML(OutputStream file) Prácticas EDI - © Juan Ramón Pérez
Clase Documento (I) Constructor que recibe URL: analizarDoc() El constructor no hace nada más que tener identificado el recurso sobre el que trabajamos Clase URL de Java, paquete java.net Para abrir una stream sobre una URL: Método openstream() nos devuelve un InputStream analizarDoc() Realiza un análisis del documento XML Llama al analizador Sintactico Crea la estructura del documento en memoria Si hay error lanza ExcepcionAnalisis Prácticas EDI - © Juan Ramón Pérez
Clase Documento (II) getTamaño(), getAltura() Recorrido recursivo preorden (obligatorio) del árbol Adaptar los métodos vistos en clase de teoría para árboles binarios imprimir(), serializar(…), imprimirAHTML(…) Invocando imprimir / serializar de sus nodos sobre elemento Tipo de salida: Imprimir, salida por pantalla y legible por el usuario ImprimirAHTML, salida a fichero en formato HTML Serializar, salida a un fichero en formato XML Prácticas EDI - © Juan Ramón Pérez
Clase Documento (III) Métodos fachada para facilitar la construcción de la estructura del documento. Método insertarElemento() en Documento: Documento tiene referencia a elementoActual elementoActual= ultimo elemento insertado Insertar siguiente elemento como hijo de elementoActual Cuando un elemento no tiene más hijos llamar método de Documento subirNivel() Método insertarPropiedad() en Documento Prácticas EDI - © Juan Ramón Pérez
Clase Documento Documento raiz: Elemento elementoActual:Elemento doc: URL Constructor create(URL) analizarDoc() lanza ExcepcionAnalisis getRaiz(): Elemento getAltura(): entero getTamaño(): entero imprimir() serializar(OutputStream file) imprimirAHTML(OutputStream file) insertarElemento(Elemento) insertarPropiedad(Propiedad) subirNivel() Prácticas EDI - © Juan Ramón Pérez
Documento XML – Estructura jerárquica <Agenda> <contacto> <nombre valor="laura"/> <telefono num="695684732"/> </contacto> <nombre valor="ana"/> <telefono num="684759238"/> <nombre valor="pedro"/> <telefono num="685934832"/> <nombre valor="juan"/> <telefono num="658493847"/> </Agenda> Prácticas EDI - © Juan Ramón Pérez
Representación gráfica del XML Agenda Contacto Contacto Contacto Contacto Nombre Telefono Nombre Telefono Nombre Telefono Nombre Telefono Valor Num Valor Num Valor Num Valor Num Prácticas EDI - © Juan Ramón Pérez