Pozdrowienia! Mam serwera powrocie zawartość XML do mojego klienta, który wygląda tak:JAXB do unmarshall <string> foobar</string>
<string xmlns="...">foobar</string>
Jestem nowy JAXB i zdobyć wiele rzeczy roboczy, z wyjątkiem tego. Sądziłem, że łatwo będzie je wymusić i wydobyć z tego sznurka. Zajęło to trochę czasu, ale w końcu zorientowali się, jak zebrać to jako
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();
}
Więc moje pytanie jest, jak ja unmarshal to? Nie można go adnotować jako elementu głównego. Nie mogę użyć java.lang jako pakietu do utworzenia nowej instancji JAXBContext (otrzymuję brakujący obiekt ObjectFactory).
Każda mądrość do przekazania? To nie może być takie trudne, prawda?
Schemat XML jest całkowicie opcjonalny dla JAXB. Całkowicie dopuszczalne jest ręczne dodawanie adnotacji do własnego modelu obiektu. – skaffman
To prawda, ale posiadanie zestawu obiektów generowanego przez schemat zapewnia poprawność w dokumencie (dokument można sprawdzić na podstawie schematu) oraz obiekty Java (łatwo jest ominąć pole). Możesz powtórzyć proces w wielu aplikacjach i maszynach. –