Jeżeli poszukujesz darmowej biblioteki do obsługi formatu XML dla języka Java, mogę polecić Ci bibliotekę XStream. XStream jest prostą biblioteką do serializacji obiektów do formatu XML i z powrotem. Biblioteka udostępniona jest na licencji BSD i nie powinien nikogo zdziwić fakt, że ostatnia jej aktualizacja datowana jest na grudzień 2008 roku. Jak chwalą się autorzy biblioteka jest:
- łatwa w użyciu
- nie musimy mapować naszych obiektów
- wydajna
Od siebie mogę dodać, że na stronach biblioteki znaleźć można napisany w przystępnej formie tutorial, umożliwiający szybkie rozpoczęcie pracy.
I tak, żeby zserializować następującą strukturę klas:
public class Person {
private String firstname;
private String lastname;
private PhoneNumber phone;
private PhoneNumber fax;
// ... constructors and methods
}
public class PhoneNumber {
private int code;
private String number;
// ... constructors and methods
}
Wystarczy zainicjalizować i odpowiednio skonfigurować obiekt biblioteki:
XStream xstream = new XStream();
XStream xstream = new XStream(new DomDriver()); // does not require XPP3 library
xstream.alias("person", Person.class);
xstream.alias("phonenumber", PhoneNumber.class);
a następnie stworzyć obiekt, który chcielibyśmy wyeksportować:
Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
String xml = xstream.toXML(joe);
co w rezultacie da nam następujący kod:
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
Proces odwrotny jest równie prosty:
Person newJoe = (Person)xstream.fromXML(xml);
Dostępny na stronach projektu tutorial pozwoli nam na stworzenie bardziej zaawansowanych struktur.