Simple désérialisation XML

Je suis en train de sortir de la XML Simple sérialiseur. Je suis plus intéressé dans la désérialisation XML->Java. Voici mon code de test de l'unité:

import java.io.StringReader;
import java.io.StringWriter;
import junit.framework.TestCase;
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
public class SimpleTest extends TestCase {
public void testWriting() throws Exception {
StringWriter writer = new StringWriter();
Address address = new Address("1234 Main Street", "San Francisco", "CA");
Serializer serializer = new Persister();
serializer.write(address, writer);
System.out.println("Wrote: " + writer.getBuffer());
}
public void testReading() throws Exception {
String input = "<address street='1234 Main Street' city='San Francisco' state='CA'/>";
Serializer serializer = new Persister();
System.out.println("Read back: " + serializer.read(Address.class, new StringReader(input)));
}
}
@Root
class Address {
@Attribute(name="street")
private final String street;
@Attribute(name="city")
private final String city;
@Attribute(name="state")
private final String state;
public Address(@Attribute(name="street") String street, @Attribute(name="city") String city, @Attribute(name="state") String state) {
super();
this.street = street;
this.city = city;
this.state = state;
}
@Override
public String toString() {
return "Address [city=" + city + ", state=" + state + ", street=" + street + "]";
}   
}

Cela fonctionne, mais la répétition de @Attribute annotations (sur le terrain et à l'argument du constructeur) dans la classe d'Adresse moche. Est-il possible de:

  • simple, figure le nom de l'attribut du nom de champ?
  • simple est d'ignorer la sérialisation, de sorte que je peux sortir avec l'annotation soit aux champs ou l'argument du constructeur?
Si vous êtes à la recherche pour facile XML->Java de la désérialisation et ne sont pas liés à un package particulier, voici une autre: sourceforge.net/projects/practicalxml (note que je n'ai pas mis cela comme une réponse parce que vous semblez très downvote heureux, ce qui n'est pas une bonne façon de traiter les gens qui essaient de vous aider)
Merci, je ne suis pas attaché à un package particulier - je vais vérifier practicalxml. Merci de ne pas prendre les downvotes trop personnellement les suggestions proposées étaient nulle part près de la résolution de mon problème et étaient bruyants, de l'OMI.
Sur la deuxième pensée, j'ai été trop downvote heureux. Mes excuses à tout le monde.
Une autre très bonne bibliothèque est XStream. J'ai été capable de faire tout ce que je voulais avec elle jusqu'à présent. 🙂

OriginalL'auteur Binil Thomas | 2009-12-15