May 19, 2009

Simple XML Serialization - Simple Framework

« Maven Projekt anlegen | Main | Create a simple RESTful Webservice with Jersey and Spring »

Das Simpleframework stellt eine gute Alternative zur herkömmlichen XML Serialisierungsframeworks dar. Die Schwerpunkte liegen vor allem auf dem intuitiven Einsatz sowie der effizienten und einfachen Implementierung.

Eine weitere interessante Eigenschaft des Simpleframeworks ist die Möglichkeit zyklische Objektabhängigkeiten abzubilden bzw. zu persistieren. Für mich persönlich stellt es eine gute Alternative zu JAXB dar, ohne die lästigen Nebeneffekte, wie beispielsweise Versionierung und Classloaderproblematik (Endorsed Problematik).

Beispiel:


@Root
public class CustomerDB {
   @ElementList
   private List<Customer> customerList;
   public List<Customer> getCustomers() {
     return customerList;
   }
   public void setCustomers(List<customer> customers) {
     this.customerList = customers;
   }
}
public class Customer {
   @Attribute
   private Long id;
   @Attribute
   private String firstName;
   @Attribute
   private String secondName;
   public int getId() {
      return id;
   }
   public void setId(Long id) {
      this.id = id;
   }
   public String getFirstName() {
      return firstName;
   }
   public void setFirstName(String name) {
      this.name = name;
   }
   public String getSecondName() {
      return secondName;
   }
   public void setSecondName(String secondName) {
      this.secondName = secondName;
   }
}

Serialisierung sowie Deserialisierung:

Serializer serializer = new Persister();
CustomerDB db = new CustomerDB();
List customers = new ArrayList();
Customer customer = new Customer();
customer.setId(1);
customer.setFirstName("Rafael");
customer.setSecondName("Sobek");
customers.add(customer);
db.setCustomers(customers);
File result = new File("customers.xml");
serializer.write(customers, result);

Ergebnis:

<customer id="1" firstName="Rafael" secondName="Sobek"/>

Grüße
Rafael

Technorati Tags:

Posted by rafael.sobek at 12:30 AM in Uncategorized

 

« May »
SunMonTueWedThuFriSat
     12
3456789
10111213141516
17181920212223
24252627282930
31