curso xml

Curso de XML con tecnologías Java Formación y Soluciones Informáticas EFIBS S.A Derechos Reservados - 2007. Copyright

Views 191 Downloads 5 File size 82MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Curso de XML con tecnologías Java

Formación y Soluciones Informáticas EFIBS S.A Derechos Reservados - 2007.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

1

Curso XML en Tecnologías J2EE

1. El Estándar XML 2. DOM

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

2

Curso XML en Tecnologías J2EE

1. El Estándar XML 2. DOM

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

3

Curso XML en Tecnologías J2EE

1. El Estándar XML 1.1 Introducción 1.2 Requerimientos 1.3 XML 1.4 DTDs 1.5 SAX

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

4

1.1 Introducción El estándar XML

Qué es XML y qué elementos lo componen

DOM

Acceso a los datos de un documento XML

XML (eXtensible Markup Language) es un metalenguaje de etiquetas, un contenedor de datos que se puede configurar a gusto del programador. Su potencia lo ha llevado a extender su presencia en Internet de una manera vertiginosa en los últimos años

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

5

Curso XML en Tecnologías J2EE

1. El Estándar XML 1.1 Introducción 1.2 Requerimientos 1.3 XML 1.4 DTDs 1.5 SAX

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

6

1.2 Requerimientos PC con Windows 98 / NT / 2000, 64 MB de RAM (depende del servidor a usar)

Ø

Para entorno Microsoft: Internet Explorer Parser MSXML 3 o superior. Servidor IIS o Personal Web Server de Microsoft.

Ø

Para entorno Java: JDK 1.1.8 o superior JAXP (Java API for XML Processing) Servidor Web (por ej. Sun Application Server)

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

7

Curso XML en Tecnologías J2EE

1. El Estándar XML 1.1 Introducción 1.2 Requerimientos 1.3 XML 1.4 DTDs 1.5 SAX

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

8

1.3 Introducción a XML Ø XML (eXtended Markup Language) es un lenguaje que

proporciona un formato para describir datos estructurados Ø Es un lenguaje de marcas Ø Es un subconjunto de SGML (Standard Generalized Markup Language) Ø Definido por el W3C en 1998

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

9

1.3 Características XML Ø Lenguaje de marcas extensible, es un metalenguaje Ø Es “case sensitive” Ø Representación estructural de los datos en forma de árbol Ø Define los datos en una aplicación, no su presentación Ø Permite interoperatividad entre máquinas distintas (un estándar para el intercambio de datos)

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

10

1.3 Ejemplo



Frank Sinatra In The Wee Small Hours

In The Wee Small Hours Mood Indigo

$12.99

The Offspring Americana

Welcome Have You Ever

$12.99



Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

11

1.3 Elementos XML Ø Un documento XML está formado por tags o etiquetas para la estructuración de los datos.

Por ejemplo: Ø Un elemento XML está formado por una etiqueta de inicio y otra etiqueta final. Entre ambas está el valor del dato al que se refiere el tag. En este ejemplo, el elemento pista tiene como valor “Welcome”:

Welcome

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

12

1.3 Elementos XML - Atributos Ø Un elemento XML puede contener uno o más atributos en su tag inicial

En este ejemplo, el atributo sería “tipo”, y su valor “individual”:

Frank Sinatra Ø Un elemento XML puede no contener un valor, solamente atributos. En este caso se puede escribir con un solo tag terminado en /. Esta expresión

equivale a

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

13

1.3 Documentos XML Un documento XML es un conjunto de elementos XML anidados (con estructura de árbol) Reglas a tener en cuenta: Ø Todos los elementos deben cerrarse Ø Los elementos deben estar limpiamente anidados Ø Un documento XML debe tener un único elemento raíz

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

14

1.3 Reglas de Construcción de Nombres XML En la construcción de nombres XML (atributos y elementos XML) se deben tener en cuenta las siguientes reglas: Ø Un nombre XML puede contener los siguientes caracteres: Letras (A-Z, a-z), dígitos (0-9), guión bajo (_), guión (-) y punto (.) Ø Debe empezar con una letra o guión bajo Ø Puede usar dos puntos (:) sólo en namespaces Ø No puede contener espacios en blanco

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

15

1.3 Documento XML Bien Formado Se dice que un documento XML está bien formado si cumple las siguientes reglas: Ø Todo tag debe tener su correspondiente tag final. Ø Los elementos deben quedar debidamente anidados Ø Debe haber exactamente un elemento raíz Ø Los valores de los atributos deben estar entre comillas Ø Un mismo elemento no debe tener más de un atributo con el mismo nombre Ø Los comentarios no deben colocarse dentro de los tags Ø Los caracteres & y < deben ser precedidos por un \ si forman parte de los datos de un elemento o atributo.

Validar un documento XML

Con un Parser XML

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

16

1.3 XML – Ejercicio 1 ¿Es el siguiente documento XML un documento bien formado?





Málaga



Madrid

Barcelona

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

17

1.3 XML – Ejercicio 2 Crear un documento XML válido que contenga los siguientes datos: Vuelo

Origen

Destino

Salida

Llegada

IB777

Málaga

Madrid

8:00

8:50

IB888

Madrid

Barcelona

9:00

10:10

IB999

Madrid

Málaga

12:00

12:50

Código Avión

Vuelos

1234

IB777,IB999

1122

IB888

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

18

1.3 XML - Namespaces Ø Un XML namespace es una colección de nombres que pueden ser usados en elementos o atributos. Ø Un namespace distingue nombres de forma única en la Web, para evitar conflictos. Ø Un namespace puede ser identificado por una: • URI (Universal Resource Identifier) • URL (Uniform Resource Locator) • URN (Uniform Resource Number)

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

19

1.3 XML – Namespaces - Declaración Se declara con el atributo xmlns en el elemento deseado. Existen dos tipos de declaración: Ø Declaración por defecto. No hace falta usar prefijo, todos los nombres pertenecen al namespace declarado:

A Suitable Boy 22.95

Ø Declaración explícita. Cada nombre debe usar un prefijo especificando el namespace al que pertenece:

A Suitable Boy 22.95

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

20

1.3 Prólogo del Documento XML Antes del elemento raíz del documento XML pueden aparecer una serie de elementos, formando la siguiente estructura:

Declaración XML

Comentarios



Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

23

Curso XML en Tecnologías J2EE

1. El Estándar XML 1.1 Introducción 1.2 Requerimientos 1.3 XML 1.4 DTDs 1.5 SAX

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

24

1.4 DTDs Ø Un DTD (Document Type Definition) es un documento que

especifica las restricciones que debe cumplir un documento XML. Ø Un documento válido es aquel que cumple las restricciones especificadas en su DTD. Un documento es inválido si no las cumple o simplemente no referencia a ningún DTD. Ø Permite la declaración de tres tipos de estructuras: Ø Elementos Ø Atributos Ø Entidades Ø Debido a sus limitaciones se creó el lenguaje XML Schema.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

25

1.4 DTDs - Declaración Un DTD se puede declarar de 2 formas: • En un fichero aparte



Monitor 15'



Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

37

Curso XML en Tecnologías J2EE

1. El Estándar XML 1.1 Introducción 1.2 Requerimientos 1.3 XML 1.4 DTDs 1.5 SAX

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

38

1.5 SAX • SAX (Simple API for XML) es una API que permite a una aplicación escribir código genérico que pueda funcionar con cualquier parser • SAX no es un parser en sí, sólo una capa entre una aplicación y un parser XML file

XML parser

SAX

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

aplicación

39

1.5 SAX • SAX, es el Simple API para XML, tiene la característica, a diferencia de DOM, que ha sido hecho para leer rápidamente cadenas de los documentos XML.

• Se hace más eficiente su manejo, cuando se requiere que se empleen grandes fuentes de XML. En el caso de SAX, la forma de crear un documento es la siguiente:

Por otra parte, para llamar al parser, se haría de la siguiente manera:

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

40

1.5 SAX • SAX es un evento secuencial, basado en un parser XML. Representa un documento XML el cual maneja la información pero en forma de streams, los cuales podrán ser procesados por los programadores.

• SAX, no puede directamente modificar el documento de streams que crea, por lo que se considera como de gran aporte solamente para llevar a cabo lecturas únicamente.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

41

1.5 SAX Ejemplo

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

42

1.5 SAX Ejemplo

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

43

Curso XML en Tecnologías J2EE

1. El Estándar XML 2. DOM

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

44

Curso XML en Tecnologías J2EE

2. DOM 2.1 Introducción 2.2 DOM

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

45

2.1 Introducción El estándar XML

Qué es XML y qué elementos lo componen

DOM

Acceso a los datos de un documento XML

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

46

2.1 Introducción Ø El DOM (Document Object Model) es una API (Application Programming Interface) creada para acceder a los datos de un documento XML. Ø Muchos lenguajes tienen librerías que permiten acceder al DOM de un documento XML mediante un parser. Ø El estándar “Level 1 DOM” definido por el W3C es seguido, entre otros navegadores, por Netscape 6 y Explorer 5. Ø Al DOM de un documento XML puede accederse desde Javascript, VBScript u otros lenguajes que lo soporten.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

47

2.1 Introducción Ø DOM es muy flexible y genérico, además se puede hallar bastante material en la W3C, lo cual permite mayor respaldo a la hora de la representación sintáctica. Ø El DOM presenta la desventaja del tiempo de respuesta y de la cantidad de memoria invertida para el procesamiento, ya que muchas de las instrucciones se hacen bastantes pesadas de procesar y a veces difícil de entender.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

48

Curso XML en Tecnologías J2EE

2. DOM 2.1 Introducción 2.2 DOM

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

49

2.2 DOM Ø Para poder hacer uso de la tecnología DOM, es necesario primero hacer uso de dos clases en java fundamentales: DocumentBuilderFactory y DocumentBuilder. Ø La clase DocumentBuilderFactory posee un método estático que permite obtener una implementación de la clase DocumentBuilderFactory.

Ø Una vez que tenemos la instancia de la Factory, creamos un DocumentBuilder Utilizando el método estatico: newDocumentBuikder().

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

50

2.2 DOM Ø De esta forma invocamos al parser, el cual nos devuelve un objeto de tipo Document con el que obtendremos la información del archivo XML.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

51

2.2 DOM – Acceso a Elementos Ø La clase Document posee una serie de métodos útiles para obtener información de los nodos que posee el documento XML. Ø String getNodeName(): Nombre del Nodo o etiqueta actual. Ø String getNodeType(): Tipo de la etiqueta Ø String getNodeValue(): Valor de la etiqueta Ø boolean hasAttributes(): ¿Tiene atributos? Ø NamedNodeMap getAttributes(): Lista de atributos Ø boolean hasChildNodes(): ¿Tiene hijos? Ø NodeList getChilNodes(): Lista de hijos

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

52

2.2 DOM – Acceso a Elementos Ø Node getFirstChild(): devuelve el primer elemento hijo del elemento Ø Node getLastChild(): devuelve el último elemento hijo del elemento. Ø Node getNextSibling(): devuelve el siguiente elemento en la lista de hijos del elemento padre, o null si es el último elemento. Ø Node getPreviousSibling(): devuelve el anterior elemento en la lista de hijos del elemento padre, o null si es el primer elemento. Ø Node getParentNode(): devuelve el nodo padre de un elemento. Ø getElementsByTagName(nombre): obtiene una lista de los elementos encontrados con el nombre indicado. Busca de forma recursiva. Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

53

2.2 DOM – Métodos de la clase NodeList

Ø int getLength(): devuelve el número de nodos de la lista. Ø Node item(int): devuelve el Nodo en la posición indicada.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

54

2.2 DOM – Métodos de la clase NamedNodeMap Ø int getLength(): devuelve el número de nodos de la lista. Ø Node item(int): devuelve el Nodo en la posición indicada. Ø Node getNamedItem(String): devuelve el objeto nodo especificado en el parámetro. Ø Node removeNamedItem(String): eliminar el nodo atributo

especificado por el parámetro.

Ø Node setNamedItem(String): asigna un nuevo valor al atributo actual, el nuevo valor se para por parámetro.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

55

2.2 DOM – Métodos de la clase Node Ø Node appendChild(): Inserta un nuevo elemento en el nodo. Ø short getNodeType(): Devuelve el tipo de nodo, ya sea elemento, texto, entidad o atributo. Ø String getNodeName(): devuelve el nombre que le ha sido asignado a ese nodo Ø String getNodeValue(): devuelve el valor que le ha sido asignado a ese nodo. Ø void setNodeValue(String value): Inserta un valor en el nodo, si ya tenia uno lo reemplaza

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

56

2.2 DOM – Métodos de la clase Node Ø Node removeChild(Node child): Elimina el nodo si existe, sino lanza una excepción de tipo org.w3c.dom.DOMException Ø Node replaceChild(Node oldNode, Node newNode): Reemplaza un nodo por otro.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

57

2.2 DOM – Ejercicio 1 Ø Ejercicio 1: Acceso a XML Ø Ejercicio 1.1 Ø Crear un archivo java que muestre los siguientes datos: • Mostrar el nombre del primer cliente • Mostrar el idCliente del último cliente • Mostrar el número de clientes • Hacer un bucle que, para cada cliente, si tiene localidad que la muestre, y si no, que muestre el mensaje “Sin localidad”

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

58

2.2 DOM – Ejercicio 1

Antonio

Jose Carlos San Salvador



Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

59

2.2 DOM – Modificación de Elementos Creación de un elemento Para esto utilizamos los métodos de la clase Document Ø getElementsByTagName(nombre): obtiene una lista de los elementos encontrados con el nombre indicado. Busca de forma recursiva. Ø createElement(nombre): Crea un elemento con el nombre especificado Ø createTextNode(nombre): Crea un objeto Text que debe ser insertado en un elemento. Ø Para agregar el nuevo elemento al nodo se utiliza el método appendChild(Node nodo)

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

60

2.2 DOM – Modificación de Elementos Creación de un elemento El siguiente código inserta el elemento precio con el valor 15 al primer articulo: NodeList nodeList = document.getElementsByTagName("articulo"); Node node = nodeList.item(0); if(node.getNodeType() == Node.ELEMENT_NODE){ Element apellido = document.createElement(“precio"); Text texto = document.createTextNode(“15"); apellido.appendChild(texto); node.appendChild(apellido); }

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

61

2.2 DOM – Modificación de Elementos Eliminación de un elemento Ø removeChild(objeto): elimina el objeto especificado La siguiente instrucción elimina el último artículo de la primer lista de artículos: NodeList listaActual = document.getElementsByTagName("articulos"); NodeList listaEliminar = document.getElementsByTagName("articulo"); Node nodoActual = listaActual.item(0); Node nodoEliminar = listaEliminar.item(listaActual.getLength()-1); document.removeChild(nodoEliminar);

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

62

2.2 DOM – Modificación de Elementos Cambiar el valor de un elemento La siguiente sentencia modifica el precioVenta del producto por el PVP: NodeList lista = document.getElementsByTagName("producto"); Node node = lista.item(1); NodeList listaHijos= node.getChildNodes(); Node nodoHijo = listaHijos.item(1); Element nuevaLocalidad = document.createElement("PVP"); Text texto = document.createTextNode("25"); nuevaLocalidad.appendChild(texto); node.replaceChild(nuevaLocalidad,nodoHijo);

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

63

2.2 DOM – Modificación de Atributos Cambio de valor de un atributo Ø setAttribute(nombre,valor): si el atributo especificado existe, cambia su valor, si no, crea uno nuevo y le asigna el valor especificado. El siguiente ejemplo crea el atributo o lo modifica si existe de idProducto del ultimo producto a 12345: NodeList nodeList = document.getElementsByTagName("producto"); Node node = nodeList.item(nodeList.getLength()-1); if(node.getNodeType() == node.ELEMENT_NODE){ Element element = (Element)node; element.setAttribute(“idProducto",“12345"); }

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

64

2.2 DOM – Modificación de Atributos Eliminación de un atributo Ø removeAttribute(nombre): elimina de un nodo el atributo con el nombre especificado. Este ejemplo borra el atributo “idProducto” creado en la sentencia anterior: NodeList nodeList = document.getElementsByTagName(“producto"); Node node = nodeList.item(0); if(node.getNodeType() == node.ELEMENT_NODE){ Element element = (Element)node; element.removeAttribute("idCliente"); }

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

65

2.2 DOM – Ejercicio 2 Ejercicio 2: Modificación de XML Ejercicio 2.1 Ø Modificar el archivo anterior para que haga lo siguiente: • Añadir la etiqueta “localidad” al primer cliente con el valor “Málaga” • Añadir una etiqueta “apellido” al último cliente con el valor “Martín” • Eliminar el primer cliente • Cambiar el nombre del último cliente por “Jorge”. • Cambiar el atributo “idCliente” del ultimo cliente por “123456”. • Añadir el atributo “edad” al primer cliente y darle por valor “25”.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

66

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

66

2.3 Crear XML en base al árbol DOM • Para crear un documento XML en base al árbol que DOM genera en memoria se necesita un objeto Transformer. Este Objeto se crea en base a un objeto TransformerFactory. Ejem.:

TransformerFactory factory; factory = TransformerFactory. newInstance(); Transformer trans = transFactory.newTransformer();

Copyright Formación y Soluciones Informáticas EFIBS S.A.

67

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

67

2.3 Crear XML en base al árbol DOM • Una vez que tenemos el objeto Tranformer, debemos crear un objeto DOMSource al cual se le indica el objeto Document (raíz) con el árbol generado por DOM. Ejm.:

DOMSource source = DOMSource(document);

• Además se debe crear el archivo en el cual se almacenara la estructura del árbol DOM que se encuentra en memoria. Ejm.: File file = new File (RUTA_FISICA); FileOutputStream fos = new FileOutputStream (file);

Copyright Formación y Soluciones Informáticas EFIBS S.A.

68

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

68

2.3 Crear XML en base al árbol DOM • Seguidamente debemos crear un objeto StreamResult, el cual vamos asociar con el archivo de salida para el futuro XML. Ejm.: StreamResult streamResult = new StreamResult(fos); • Finalmente le indicamos al objeto Tranformer que guarde en disco el árbol DOM en el archivo especificado por StreamResult. Ejm.:

transformer.transform(source,streamResult);

Copyright Formación y Soluciones Informáticas EFIBS S.A.

69

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

69

2.3 Ejercicio Ejercicio 1: Ø Modifique en memoria el archivo anterior de clientes y envié a guardar en disco un archivo XML con las modificaciones realizada. Ø Compare el archivo resultante con el original.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

70

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

70

Curso XML en Tecnologías J2EE

1. El Estándar XML 2. DOM

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

71

Curso XML en Tecnologías J2EE

Anexo

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

72

JDOM Ø La diferencia con DOM y SAX, es que JDOM es un modelo más fácil de utilizar por parte del programador.

Ø Está hecho en Java, es el Java Document Object Model.

Ø JDOM, hace una mejor representación de un documento XML a nivel de objetos en Java.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

73

JDOM Ø Implementa del 80%-90% de la funcionalidad de DOM.

Ø Tiene la característica que es de fácil integración con SAX.

Ø Actualmente JDOM, está constantemente evolucionando, ya que está relacionado con Apache Groups Xerces.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

74

JDOM Ø JDOM, hace uso de menos requerimientos de memoria que el genérico DOM.

Ø JDOM, cuenta con un conjunto de métodos más simples que DOM y SAX para recuperar la información.

Ø Tiene problemas de memoria cuando procesa archivos grandes.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

75

JDOM Ø El API está formado por 5 packages. Ø El package org.jdom Clases: Document representa el documento XML. Element representa el elemento o etiqueta que forma el documento. Attribute representa los atributos que puedan tener los elementos. Ø El package org.jdom.adapters albergará las clases adaptadoras ya que no todos los parsers DOM tienen la misma API. Ø El package org.jdom.input albergara las clases builder para construir los documentos XML. Ø El package org.jdom.output albergara las clases que utilizaremos para dar salida a una clase Document.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

76

JDOM Ø Para construir un objeto Document son JDOM, necesitamos realizarlo desde un parser de SAX o DOM, para esto empleamos las clases SAXBuilder o DOMBuilder.

Ø Se recomienda realizarlo atravez del parser de SAX, ya que es mas rápido y consume menos recursos.

Ejm.: SAXBuilder builder = new SAXBuilder(); Document doc = builder. build(ARCHIVO_XML); Con lo anterior obtenemos una instancia de Document con lo cual ya podemos empezar a manipular el archivo XML.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

77

JDOM Ø a través del objeto Document podemos obtener la raíz del XML, utilizando el método getRootElement() este método nos retorna un objeto Element representando la raíz. Ø Podemos crear elementos de una manera muy simple. Element elemento = new Element(“root”); elemento.setText(“Es es el elemento raiz”); document.addContent(elemento);

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

78

JDOM Ø Clase Element Ø Posee algunos métodos de interés. String getText() Capturar el texto de una etiqueta o elemento. List getChildren() Coger todos los elementos que cuelgan del Element. List getChildren(String nombre) Coger todos los elementos que tengan ese nombre. List getMixedContent() Para recuperar todo(comentarios, PIs, elementos,etc). Boolean removeChild(String hijo) Remueve los hijo que coincidan con el parámetro, retorna true si logro remover el hijo, false en caso contrario. Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

79

JDOM Ø Clase Element, continua…. Ø Posee algunos métodos de interés. Element getChild (String nombre) Coger el primer hijo que tenga ese nombre. Element

String getAttributeValue(String nombre) Coger el valor del atributo que pasamos como parámetro. Attribute getAttribute(String nombre) Coger el atributo que tenga ese nombre. Element addContent(Content nuevoHijo) Añade un hijo al elemento con el que se llamo el método.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

80

JDOM Ø Clase Attribute Ø Podemos obtener los atributos de un elemento utilizando el método getAttributeValues(String nombre) de la clase Element. Ø De igual manera podemos eliminar un atributo en especifico utilizando el metodo removeAttribute(String nombre). Ø Así mismo se puede asignar un nuevo valor a un atributo con el metodo setAttribute(String nombre, String valor). Ø Con la instrucción getAttributes().clear() se eliminan todos los atributos de un elemeneto.

Ø Nota: Todos los metodos anteriores pertenecen a la clase Element.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

81

JDOM Ø Clase Attribute Ø String getValue() Capturar el valor de la etiqueta. Ø String getName() Obtiene el nombre de la etiqueta Attributes. Ø void setName(String name) Asigna un nuevo nombre a la etiqueta atributo. Ø void setValue(String value) Asigna un nuevo valor a la etiqueta atributo.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

82

JDOM Ø Escribir un XML a Disco

Ø Para almacenar la información de un árbol XML a disco utilizando JDOM, es necesario, utilizar la clase XMLOutputter.

Ø Ejm.: Ø XMLOutputter out = new XMLOutputter(); Ø File file = new File(ARCHIVO); Ø FileWriter fw = new FileWriter(file); Ø out.output(document,fw); Ø fw.close();

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

83

JDOM Ø Ejercicio Practico Ø Utilizando JDOM, lea el archivo de clientes y realice las siguientes modificaciones. Ø Añada un nuevo cliente con el valor del nombre de Pedro. Ø Incluya una nueva localidad para el 1er cliente. Ø Agregue la etiqueta teléfono a ambos clientes. Ø Cambie el atributo id de ambos clientes. Ø Elimine el 1er cliente. Ø Muestre las modificaciones por pantalla y cree un archivo XML nuevo con las modificaciones realizadas al archivo de clientes.

Copyright Formación y Soluciones Informáticas EFIBS S.A.

Created by PDF Generator (http://www.alientools.com/), to remove this mark, please buy the software.

84