В моем приложении для Android мне нужно поговорить с веб-сервером, который ожидает маршаллированные объекты сложных классов. Эти пользовательские классы были созданы из файла WSDL, поэтому они уже поставляются с аннотациями. Сервер использует JAXB для маршаллинга и демаршаллинга.
Итак, на стороне клиента, используя JAXB, я бы просто сказал:
JAXBContext jc = JAXBContext.newInstance("schema_definition_path");
Marshaller m = jc.createMarshaller();
Unmarshaller u = jc.createUnmarshaller();
... и затем использовать экземпляры Marshaller и Unmarshaller для сериализации / десериализации пользовательских объектов.
Поскольку не очень хорошая идея использовать тяжёлую библиотеку JAXB в мобильных приложениях, я ищу альтернативу, чтобы сделать то, что JAXB делает для меня здесь.
Я проверил Простая сериализация XML , но, похоже, это не обеспечивает такую функциональность. Я могу только дать класс unmarshaller вместо пути определения схемы. В результате получается неполный XML-документ, содержащий только корневой элемент.
Может кто-нибудь указать мне правильное направление, пожалуйста? Это вообще возможно? Должен ли я использовать другую библиотеку - какую? Я просто неправильно использую SimpleXML?