En esta entrada veremos cómo usar el framework JAXB en JAVA para trabajar con los XML, el escenario podría ser el siguiente.
Se nos ha entregado como parte de un proyecto un XSD a partir del cual debemos generar XMLs y los mismos deben ser deserializados a objetos JAVA. Esto puede incluir acciones de validación contra el XSD, lo cual será objeto de otra entrada.
Veremos como usando el XSD podemos:
1. Llevar el XSD al eclipse.
2. Generar las clases que se encargaran de trabajar en la serialización y deserialización de los objetos y XML.
3. Crear los XML.
4. Leer los datos del XML y usarlos en los objetos de nuestra aplicación.
Los pasos serán los siguientes:
1. Creamos un proyecto JAVA en el Eclipse.
2. Lo convertimos en un proyecto Maven desde el mismo eclipse.
3. Le agregamos las dependencias necesarias.
4. Creamos un XSD con una estructura definimos por nosotros.
5. Creamos las clases que se encargaran de acceder a los XML correspondientes a este XSD.
6. Creamos un XML a partir del XSD del paso 4.
7. Creamos una clase que nos permita obtener los datos del XML.
Los 2 primeros pasos no necesitan explicación.
Para el paso 3 deben ir al pom del proyecto Maven y agregar estas dependencias.
Para las dependencias de Maven deben usar las siguientes:
<dependencies>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>2.1.13</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.1.13</version>
</dependency>
</dependencies>
En la siguiente imagen pueden ver las dependencias que se descargan:
Paso 4:
Para crear el XSD Ahora hacemos clic derecho sobre la carpeta src y creamos un nuevo archivo XSD tal y como se muestra en la imagen:
Luego veremos la siguiente pantalla:
En la sección de Types daremos clic derecho y crearemos un tipo complejo llamado Capitulo.
Para añadirle elementos al tipo complejo damos clic derecho encima de él y luego damos clic en Add Element, en mi caso queda algo como lo siguiente:
Ahora debemos crear un elemento para que nos almacene el tipo complejo que acabamos de crear. Para eso vamos a la sección Elements y damos clic derecho y luego en Add Element. Por defecto nos lo pone de tipo String, así que debemos darle doble clic y luego en el elemento damos clic derecho y seleccionamos “Set Type” y luego “Browse” para buscar el tipo complejo que creamos.
Ahí damos OK y listo.
Tendremos lo siguiente:
Si pasan a la sección de Source verán lo siguiente:
Paso 5:
Damos clic derecho sobre el esquema creado en el paso 4 y seleccionamos Generate -> JAXB clases.
Aquí seleccionamos el proyecto, damos Next, y llegamos a esta pantalla donde especificamos el paquete en que queremos que se generen las clases.
Damos finish y listo. Si todo fue bien veremos lo siguiente:
Como ven se nos ha creado el paquete con las clases dentro que representan el tipo de dato complejo que creamos en el XSD. Revisen la clase Capitulo para que vean el código generado.
Paso 6:
Ahora damos clic derecho sobre el XSD y seleccionamos la opción Generate -> XML File.
Damos Next.
Y luego Finish.
Ahora vamos al XML y editamos sus datos, en mi caso puse este.
Paso 7:
Ahora la clase que debemos crear es realmente sencilla. Les dejo el código porque se explica por sí solo.
Cuando ejecutamos vemos lo siguiente:
El código lo pueden descargar desde aquí y compilar con Maven.
Cualquier duda pues dejen un comentario.
podrias volver a subir el codigo por favor
ResponderEliminarBuenas tardes mi estimado, podrias generar un video con la explicacion ya que me pierdo en el paso 1-3 te lo agradecería bastante.Saludos!
ResponderEliminar