Diferencia entre revisiones de «Simple XML»

De Dos Ideas.
Saltar a: navegación, buscar
(Creo una página nueva en la Wiki sobre Simple XML (framework para des/serializacion de XML))
 
(Ver también)
 
(No se muestran 2 ediciones intermedias del mismo usuario)
Línea 17: Línea 17:
  
 
  import org.simpleframework.xml.Element;
 
  import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
 
  
@Root
 
 
  public class Persona {
 
  public class Persona {
 
     @Element
 
     @Element
Línea 71: Línea 69:
 
** [http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php Tutoriales desde el sitio oficial de Simple XML Framework]
 
** [http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php Tutoriales desde el sitio oficial de Simple XML Framework]
 
** [http://simple.sourceforge.net/download/stream/doc/examples/examples.php Ejemplos más complejos desde el sitio oficial de Simple XML Framework]
 
** [http://simple.sourceforge.net/download/stream/doc/examples/examples.php Ejemplos más complejos desde el sitio oficial de Simple XML Framework]
 +
* Proyecto de ejemplo (el código de este tutorial, con ejemplos funcionando más complejos):
 +
** SVN: http://dosideas-aplicaciones-modelo.googlecode.com/svn/test-simpleXmlFramework
 +
** Web: http://code.google.com/p/dosideas-aplicaciones-modelo/source/browse/#svn%2Ftest-simpleXmlFramework

Revisión actual del 17:03 25 ene 2013

Otro parser XML

Ese es el punto. ¿Por qué otro des/serializador de XML > Java | Java > XML? Para conocer otra herramienta, con sus pros y contras, que en alguna situación pueda resultar ser una mejor opción que otro como XStream, por ejemplo.

Si siguen leyendo vamos a ver como agregar esta biblioteca utilitaria y unos ejemplos de uso básicos y muy sencillos.

Agregar dependencia

Para agregar la dependencia, utilizando Maven, es suficiente con:

<dependency>
    <groupId>org.simpleframework</groupId>
    <artifactId>simple-xml</artifactId>
    <version>2.6.9</version>
</dependency>
  • Se puede ver cuál es la última version disponible desde acá

La entidad

import org.simpleframework.xml.Element;
public class Persona {
    @Element
    private String identidad;
    @Element
    private int edad;
}

Serializar (Java > XML)

El método

public String obtenerXml(Persona persona) throws Exception {
    Serializer serializer = new Persister();
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    serializer.write(persona, outputStream);
    return outputStream.toString();
}
  • Nota: El método write(), para la version de este ejemplo, se puede llamar con:
    • java.io.File
    • java.io.OutputStream
    • java.io.Writer
    • org.simpleframework.xml.stream.OutputNode

Resultado

<persona>
   <identidad>34123456</identidad>
   <edad>15</edad>
</persona>

Deserializar (XML > Java)

El método

public Persona crear(String xml) throws Exception {
    Serializer serializer = new Persister();
    return serializer.read(Persona.class, xml);
}
  • Nota: Vale mencionar que para deserializar un objeto es necesario que exista el constructor por default sin parámetros. De no hacerlo, lanzará una excepción:
org.simpleframework.xml.core.PersistenceException: Constructor not matched for class {miClase}

Alternativas para des/serialización de XML

Ver también