Saltar la navegación

6.7.2.- Ejemplos con anotaciones.

Tenemos la estructura XML siguiente:

<libreria>
    <ListaLibro>
        <Libro>
            <autor>XXXXXXX</autor>
            <nombre>XXXXXXX</nombre>
            <editorial>XXXXXXX</editorial>
            <isbn>XXXXXXX</isbn>
        </Libro>
         ......
</ListaLibro>
....
<lugar>XXXXXXX</lugar>
<nombre>XXXXXX</nombre>
</libreria>

Para mapear la raiz es necesario una clase librería con anotación @XmlRootElement.

         

  @XmlRootElement
             public class Libreria { 
                    .....
             }

Esta clase tiene un atributo por cada etiqueta del XML incluido ListaLibro que es un array de elementos de tipo Libro:

           @XmlElementWrapper(name = "ListaLibro")
           @XmlElement(name = "Libro")
           private ArrayList<Libro> ListaLibro;

La clase librería, es la clase que mapea  el XML 

import java.util.ArrayList;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
//Esto significa que la clases "Libreria.java" es el elemento raiz
@XmlRootElement 
public class Libreria { 
    //Wrapper
    @XmlElementWrapper(name = "ListaLibro")
    @XmlElement(name = "Libro")
    private ArrayList<Libro> ListaLibro;
    private String nombre;
    private String lugar; 
    public ArrayList<Libro> getListaLibro() {
        return ListaLibro;
    } 
    public void setListaLibro(ArrayList<Libro> ListaLibro) {
        this.ListaLibro = ListaLibro;
    } 
    public void setNombre(String nombre) {
        this.nombre = nombre;
    } 
    public void setLugar(String lugar) {
        this.lugar = lugar;
    } 
    public String getNombre() {
        return nombre;
    } 
    public String getLugar() {
        return lugar;
    } 
}

La clase libro que mapea cada uno de los nodos <Libro> del XML

import javax.xml.bind.annotation.XmlType;
@XmlType(propOrder = { "autor", "nombre", "editorial", "isbn" })
public class Libro {
private String nombre;
private String autor;
private String editorial;
private String isbn;
public String getNombre() {
return nombre;
}
public String getAutor() {
return autor;
}
public String getEditorial() {
return editorial;
}
public String getIsbn() {
return isbn;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setAutor(String autor) {
this.autor = autor;
}
public void setEditorial(String editorial) {
this.editorial = editorial;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
}