Grüße! Ich habe einen Server zurückkehr XML-Inhalte zu meinem Client, der wie folgt aussieht:JAXB zu unmarshall <string> foobar</string>
<string xmlns="...">foobar</string>
Ich bin neu in JAXB und haben eine Menge Sachen arbeiten, es sei denn diese bekommen. Ich dachte, es wäre ziemlich einfach, dies zu einer Saite zu ordnen und zu entpacken. Es dauerte eine Weile, aber ich endlich herausgefunden, wie man dies Marschall als
public static String ToXML(String s) throws Exception
{
JAXBContext context = JAXBContext.newInstance(String.class);
Marshaller marshaller = context.createMarshaller();
StringWriter sw = new StringWriter();
marshaller.marshal(new JAXBElement(new QName("", "String"), String.class, s), sw);
return sw.toString();
}
Also meine Frage ist, wie ich entpacken das? Es kann nicht als Wurzelelement kommentiert werden. Ich kann java.lang nicht als Paket verwenden, um eine neue Instanz eines JAXBContext zu erstellen (ich bekomme eine ObjectFactory fehlende Ausnahme).
Jede Weisheit zu vermitteln? Das kann nicht so schwer sein, oder?
Ein XML-Schema ist mit JAXB völlig optional. Es ist vollkommen akzeptabel, Ihr eigenes Objektmodell manuell zu kommentieren. – skaffman
Wahr, aber ein Schema-generierte Satz von Objekten gewährleistet die Korrektheit im Dokument (das Dokument kann anhand des Schemas validiert werden) und die Java-Objekte (es ist leicht, ein Feld zu übersehen). Sie können den Prozess auch über mehrere Anwendungen und Maschinen hinweg wiederholen. –