Хорошая альтернатива для JAXBContext для использования в Android? - PullRequest
0 голосов
/ 18 января 2012

В моем приложении для 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?

1 Ответ

0 голосов
/ 23 января 2012

Так как я не мог найти лучшего способа (см. Комментарии к исходному вопросу), я решил вручную конвертировать Объекты, используя реализацию API XML Pull, включенную в Android.

Вот краткое руководство по его использованию: http://www.ibm.com/developerworks/opensource/library/x-android/

Я не говорю, что это хороший способ, но это единственное, о чем я могу думать, это сработает и там, где мне не нужно трогать оригинальные классы.

...