Я привязан к использованию XmlPullParser (поскольку мы используем библиотеку Smack XMPP). Но очень неудобно разбирать XML с ним и помещать прочитанные значения в beans (по крайней мере, если XSD задан). В отличие от JAXB было бы намного легче работать.XmlPullParser: получить/восстановить raw XML
Также для сериализации это «старомодный подход, основанный на ошибках», чтобы объединить строки вручную. (см. мотивацию http://babbler-xmpp.blogspot.co.at/2014_01_01_archive.html, которая также суммирует минусы).
Но для использования JAXB для десериализации я должен получить необработанную XML-строку. Конечно, одним из способов было бы восстановить всю XML-строку, используя методы анализа XML XmlPullParser (например, getName()
, getText()
, getAttributes()
, ...). Но я хотел бы избежать этого.
Возможно ли получить всю необработанную XML-строку определенного тега (например, где сейчас указывает XmlPullParser)? Или кто-нибудь знает какую-нибудь утилиту, которая восстанавливает XML экземпляра XmlPullParser?
Вы передаете в XmkPullParser некоторые чтения? Почему бы просто не прочитать все дважды? И: если вы хотите использовать JAXB для создания иерархии POJO: какова цель разбора XML? – laune
Проблема в том, что у меня нет доступа к Reader, который представляет собой необработанный XML-поток. Только XmlPullParser передается из фреймворка (Smack) в мои пользовательские расширения. – MrD