Was ist der beste Weg, um ein Java-Objekt in xml mit Open-Source-API zu konvertieren
Ich Frage mich, was die besten oder am häufigsten verwendeten apis sind zum konvertieren eines java-Objekts in xml. Ich bin ziemlich neu auf dem Thema. Gibt es irgendeine Art von api-Aufruf, die Sie machen können, übergeben Sie ein Objekt, und xml zurückgeben? Oder ist es viel mehr mühsam, wo Sie brauchen, um zu konstruieren, das Dokument manuell durch herausziehen Objekt Werte?
Habe ich gelesen, über xerces, sax und jaxb. Ich würde gerne weiterhin auf diesem open-source-route.
Dank!
InformationsquelleAutor der Frage Atma | 2009-04-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
JAXB ist definitiv die Lösung.
Warum? Naja, es ist innerhalb des JDK 6so dass Sie nie finden es unbetreut.
Es verwendet Java-Annotationen deklarieren XML-Eigenschaften für Klassen, Methoden und Felder.
Tutorial 1
Tutorial 2
Hinweis: JAXB können Sie auch einfach 'unmarshal XML-Daten
(das war früher so umgewandelt von Java-Objekt-Instanzen) zurück
zu Objekt-Instanzen.
Eine weitere tolle Sache über JAXB ist: Es wird unterstützt von anderen Java-bezogenen
Technologien, wie JAX-RS (ein Java-RESTful API, die ist sofort lieferbar
als Teil der Java EE 6). JAX-RS dienen können und erhalten JAXB
Objekte on-the-fly, ohne die Notwendigkeit von marshalling/unmarshalling.
Sie möchten möglicherweise überprüfen Sie heraus Netbeans, die enthält
out-of-the-box-support für JAX-RS. Lesen dieses tutorial für den Einstieg.
edit:
Marshall/unmarshall "zufällig" (oder Fremd -) Java-Objekte, JAXB
bietet Recht einfache Möglichkeit: Man kann erklären, XmlAdapter
und 'wrap' vorhandenen Java-Klassen JAXB-kompatibel.
Die Verwendung solcher XmlAdapter erfolgt durch die @XmlJavaTypeAdapter-annotation.
InformationsquelleAutor der Antwort ivan_ivanovich_ivanoff
Vielleicht möchten Sie sich bei XStream: http://x-stream.github.io
InformationsquelleAutor der Antwort Gary Kephart
Verfügbar mit Java 6 ist eine API zum konvertieren von annotierten Java-Objekte zu XML. Der folgende code zeigt, wie der Umwandlung eines annotierten Objekts in eine XML-Zeichenfolge
Können Sie weiter ausbauen, dies durch hinzufügen der schema-Validierung (note sehr langsam, aber nützlich für die Fehlersuche)
Brauchen Sie nicht zu tun, eine Art Bekehrung zu JAXBElement wenn der Typ eines angegebenen Elements. (d.h. eine annotation @XmlRootElement)
InformationsquelleAutor der Antwort Archimedes Trajano
Was über java.Bohnen.XMLEncoder und java.Bohnen.XMLDecoder ?
Beispiel bei http://www.rgagnon.com/javadetails/java-0470.html
Bye.
InformationsquelleAutor der Antwort RealHowTo
Für jedermann, die entscheidet, zu verwenden, JAXB, bitte stellen Sie sicher, dass cache JAXBContext. JAXBContext.newInstance ist bekanntlich sehr teuer. Ich dokumentierte einen Fall, wo die Konvertierung in xml verwendet wird, in die Protokollierung und JAXBContext.newInstance wird nicht zwischengespeichert, es verursachte Verwaltungsaufwand bis zu 5seconds, wenn Sie angerufen werden von 20 gleichzeitigen Benutzern.
http://app-inf.blogspot.com/2012/10/performance-tuning-logging-right-way.html
Dies ist nicht zu entmutigen jemand mit JAXB. Einmal JAXBContext zwischengespeichert, die Leistung ist exzellent, wie bereits in dem oben genannten link.
InformationsquelleAutor der Antwort user1738754
XMLBeans ist ein anderes, ähnlich wie JAXB. Habe ich noch nicht angeschaut, JAXB in eine Weile, wenn ich es Tat, es war ziemlich schlecht im Vergleich zu XMLBeans, aber das war vor Jahren (und ich bevorzuge Dinge, die sind in der JDK-im Gegensatz zu 3rd-party, aber ich benutze immer noch XMLBeans an diesem Tag).
InformationsquelleAutor der Antwort TofuBeer
Gibt es viele open-source-frameworks in diesem Raum. Allerdings Einfach wie der name schon sagt, ist bei weitem die einfachste Möglichkeit zum ausführen der Serialisierung. Werfen Sie einen Blick auf die Tutorial. Ein weiteres Merkmal ist, dass es ausführen können, polymorphe Serialisierung, was bedeutet, dass Ihr nicht so begrenzt wie JAXB zum Beispiel.
InformationsquelleAutor der Antwort ng.