Welche Methode ist am geeignetsten, um Java-Klassen in XML zu serialisieren? Ich habe JAXB versucht, aber es hat Probleme mit Interfaces und Generics. Welche Lösung ist am wenigsten aufdringlich, aber skalierbar?Best Practice für das Serialisieren/Deserialisieren von Java nach XML
Antwort
Ich hatte immer gute Erfahrungen mit XStream:
http://x-stream.github.io/tutorial.html#to-xml
Wie Sie sehen können, ist es einfach zu bedienen ist.
Ich habe XStream nicht wirklich mit Generics verwendet (ich habe es nur für einfache JavaBean-Klassen verwendet), aber Google scheint darauf hinzuweisen, dass es ohne Probleme handhabt. z.B. http://techo-ecco.com/blog/xstream-spring-ws-oxm-and-generics/
Ich würde vorschlagen, die Probleme mit Schnittstellen und Generika zu überwinden, die Sie mit JAXB haben.
java.util.List is an interface, and JAXB can't handle interfaces
Ich lese bereits diese, aber finde die Lösungen wird nicht passen, es skaliert nicht Adapter für jede Klasse mit Generics zu bauen. Transformation zu/von Arrays wäre in Ordnung - wenn JAXB würde es transparent und ohne meine Hilfe tun. – mbx
n.b. Dieser Blog-Link führt dazu, über die Verwendung von Spring zu sprechen, um das ausgegebene XML zu vereinfachen, aber das erste XML-Snippet zeigt an, dass der einfache alte XStream die generische LinkedList schön behandelt – laher
Das Tutorial selbst verwendet eine Liste, so scheint es zu funktionieren. Daher muss das/müssen Standard Konstruktor/ist fairer Kompromiss. –
mbx