Prosta deserializacja XML

PróbujęProsty serializator XML. Jestem bardziej zainteresowany deserializacją z XML-> Java. Oto mój kod jako test jednostkowy:

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 + "]";
    }   
}

To działa, ale powtórzone@Attribute adnotacje (w polu i przy argumencie konstruktora) w klasie Adres wyglądają brzydko. Czy jest jakiś sposób na:

mieć prostą nazwę atrybutu z nazwy pola?mieć prostą serializację ignorowania, dzięki czemu mogę uciec od opisywania pól lub argumentu konstruktora?

questionAnswers(3)

yourAnswerToTheQuestion