Sto provando il Simple XML serializer. Sono più interessato alla deserializzazione da XML-> Java. Qui è il mio codice come una prova di unità:Deserializzazione XML semplice
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 + "]";
}
}
questo funziona, ma i ripetuti @Attribute
annotazioni (al campo ed in argomento del costruttore) nella classe Indirizzo sembrare brutto. C'è un modo per:
- avere un semplice nome del nome di attributo dal nome del campo?
- si può semplicemente ignorare la serializzazione, in modo che io possa farla franca annotando i campi o l'argomento del costruttore?
Se si sta cercando la deserializzazione XML-> Java semplice e non sono legati a un particolare pacchetto, ecco un'alternativa: http://sourceforge.net/projects/practicalxml/ (notare che non l'ho inserito come risposta perché sembri molto felice, che non è un buon modo per trattare le persone che stanno cercando di aiutarti) – kdgregory
@kdgregory Grazie, non sono legato a un particolare pacchetto - controllerò praticoxml. Si prega di non prendere i downvotes troppo personalmente - i suggerimenti offerti sono stati da nessuna parte vicino a risolvere il mio problema ed erano rumorosi, IMO. –
@kdgregory A pensarci bene, ero troppo contento. Scuse a tutti. –