35
XML Y JAVA » Prácticas

6/9 Curso JEE5, Soa, Web Services, ESB y XML

Embed Size (px)

DESCRIPTION

Curso JEE5, Soa, Web Services, ESB y XML

Citation preview

Page 1: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

XML Y JAVA

» Prácticas

Page 2: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

XML y Java

• Contenido− SAX: Construcción de un analizador simple SAX: SimpleSax

Page 3: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Ejemplo de eventos SAX:XML DocumentXML Document

<?xml version=“1.0”?>

<pizzas>

</pizzas>

<pizza>

</pizza>

<ingred>Tomate</ingred>

<ingred>………… </ingred>

<pizza>

</pizza>

<ingred>Tomate</ingred>

<ingred>………… </ingred>

SAX ObjectsSAX Objects

startDocument

ParserParser startElement

ParserParser startElement & characters

ParserParser startElement & characters

ParserParser endElement

ParserParser startElement

ParserParser startElement & characters

ParserParser startElement & characters

ParserParser endElement

ParserParser endElement & endDocument

ParserParser startElement

Page 4: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

SAX

» SimpleSax

Page 5: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Nuestra primera práctica consiste en construir un analizador de XML simple, basándonos en la API Sax.

• Será algo así como el “HolaMundo” pero con la API Sax….

• Crearemos un nuevo proyecto en Netbeans:− File->New Project->General->Java Application

• Lo llamaremos 04SimpleSax.

• En el campo Create Main Class, estableceremos simplesax.SimpleSax

Page 6: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas• Antes de continuar, debemos ir a las propiedades del

proyecto y añadir xerces-2.8.0.jar.

• El código fuente está en el directorio de prácticas (base-SimpleSax.txt), junto con el archivo “video.xml” para poder comprobar su funcionamiento.

• Tendremos que hacer un build y movernos al directorio dist para ejecutarlo, con la sentencia:

java –jar 04SimpleSax.jar videoclub.xml

• Contamos con que ese archivo también lo hemos copiado a esa ubicación…

Page 7: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas• Resultados que

esperamos:

Page 8: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

SAX

» TituloPeliculas

Page 9: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas• En esta práctica, construiremos un analizador que

recorra el XML “video.xml” y muestre la siguiente información acerca de cada película:

• Título• Año de rodaje• Duración

• Para ello, en NetBeans iremos a File->New Project->General->Java Application

• Le daremos el nombre: 04TituloPeliculas.

• En el campo “create main class”, le daremos este valor:sax.videoclub.TituloPeliculas

Page 10: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Una vez hecho esto, nos vamos a las propiedades del proyecto y le añadimos la librería xerces-2.8.0.jar.

• Ahora tomamos el fichero “base-TituloPeliculas.txt” y arreglamos los errores que NetBeans informa.

• Hacemos un Build y probamos el proyecto copiando de nuevo el archivo video.xml al directorio distcorrespondiente.

Page 11: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Captura de la salida correcta del programa:

Page 12: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

SAX

» SinopsisPelicula

Page 13: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas• En esta práctica, construiremos un analizador que

recorra el XML “video.xml” y muestre la siguiente información acerca de cada película:

• Título

• Año de rodaje

• Sinopsis

• Por lo tanto, extraeremos información de dos atributos y extraeremos el campo de datos, o información textual, lo cual llevaremos a cabo mediante el método characters).

Page 14: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas• Para ello, en NetBeans iremos a

File->New Project->General->Java Application

• Le daremos el nombre: 04SinopsisPelicula.

• En el campo “create main class”, le daremos este valor:sax.videoclub.SinopsisPelicula

• nos vamos a las propiedades del proyecto y le añadimos la librería xerces-2.8.0.jar.

• Ahora tomamos el fichero “base-SinopsisPeliculas.txt” y arreglamos los errores que NetBeans informa.

• Hacemos un Build y probamos el proyecto copiando de nuevo el archivo video.xml al directorio dist correspondiente.

Page 15: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Hacemos un Build y probamos el proyecto copiando de nuevo el archivo video.xml al directorio distcorrespondiente

• Ejecución esperada:

Page 16: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

SAX

» DetectaError

Page 17: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas• Ahora hemos hecho prácticas con manejadores de

contenido (ContentHandlers). Ahora vamos a hacer una práctica con Manejadores de Errores (ErrorHandler).

• Para ello, creamos un nuevo proyecto de aplicación java, con el nombre: “04DetectaError”. El campo CreateMain Class, lo llenamos con sax.DetectaError.

• Una vez más, agregamos la librería xerces-2.8.0.jar a nuestro proyecto.

• Rellenaremos el esqueleto de la clase DetectaError con el archivo base-DetectaError.txt. Solucionaremos los problemas que dicte Netbeans.

Page 18: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas• Haremos click derecho sobre el nombre del paquete (sax) y

elegimos crear una nueva clase java.

• Le otorgamos el nombre MiErrorHandler.

• Copiamos el contenido de base-MiErrorHandler.txt y arreglamos los errores que dicte Netbeans.

• Hacemos build del proyecto y nos dirigimos a su directorio dist. Copiamos en él, el archivo video.xml.

• Hacemos comprobaciones con el documento original y con errores en ese documento, para testear su comportamiento. En el ejemplo, “video2.xml” es una copia con errores.

Page 19: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• El comportamiento esperado es:

Page 20: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

SAX

» ValidandoSax

Page 21: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas• En el ejemplo anterior, por mucho que “estropeemos” el

documento XML, lo normal es que obtengamos un error fatal.

• Los warnings y errores normales se producen cuando un documento está bien formado pero no es válido, cotejándolo con su DTD.

• Crearemos un nuevo proyecto, con el nombre: 04ValidandoSax. El campo Create Main Class, lo llenamos con sax.ValidandoError.

• Una vez más, añadimos la librería xerces-2.8.0.jar

• Llenaremos esa clase con el archivo base-ValidandoError, y solucionaremos lo errores que dicte Netbeans.

Page 22: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Ahora, hacemos click derecho en el nombre del paquete (sax), y creamos una nueva clase java, que se llame MiErrorHandler. Resolvemos los errores que dicte Netbeans.

• Hacemos un build y nos movemos al directorio dist.

• Copiamos en él los archivos departamento*

• Efectuamos pruebas para comprobar el funcioamientode la validación de documentos en base a un DTD con los distintos archivos XML.

Page 23: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• La ejecución esperada es:

Page 24: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

DOM

» SimpleDom

» Videoclub

» Videoclub2

» SinopsisDom

Page 25: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas• El primer proyecto se llamará 04SimpleDom, y el create

main class será dom.SimpleDom.

• El fuente es: base-SimpleDom.txt

• Usamos el archivo video.xml

• Hacemos build y vamos al directorio dist para probar como video.xml

• Sólo debe mostrar:C:\CursoSOA\04SimpleDom\dist>java -jar 04SimpleDom.jar video.xml

Analizando el documento: video.xml...

C:\CursoSOA\04SimpleDom\dist>

Page 26: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• El siguiente proyecto se llamará 04Videoclub, y el create main class será dom.Videoclub.

• El fuente es: base-Videoclub.txt

• Usamos el archivo video.xml

• Hacemos build y vamos al directorio dist para probar como video.xml

Page 27: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Resultados esperados

Page 28: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Ahora probamos la aproximación haciendo uso del método getElementsByTagName, de org.w3c.dom.Node.

• El proyecto se llamará 04Videoclub2, y el create mainclass será dom.Videoclub2

• El fuente es base-Videoclub2.txt, y debemos tomar como fichero para probar, video.xml.

• Debemos obtener el mismo resultado que antes.

Page 29: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Resultados esperados

Page 30: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Nos queda obtener la sinopsis.

• Creamos el proyecto: 04SinopsisDom, y en create mainclass, establecemos dom.Sinopsis

• Tomamos el archivo base-Sinopsis.txt.

• Tomamos el archivo video.xml.

• Build y probamos.

Page 31: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Resultados esperados:

Page 32: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

JDOM

» CrearArbolJDom

Page 33: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Práctica

• Vamos a crear un proyecto llamado 04CrearArbolJDom, y en create main class, establecemos jdom.CrearArbolJDom.

• Añadimos la librería jdom-1.0.jar

• Usamos el archivo base-CrearArbolJDom.txt

• Hacemos build y ejecutamos para ver el árbol creado.

Page 34: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

Prácticas

• Resultados esperados

Page 35: 6/9 Curso JEE5, Soa, Web Services, ESB y XML

FIN