JSoup предназначен для обработки довольно грубого и готового HTML, поэтому работает с более щедрыми правилами синтаксического анализа, чем обычный XML API (например, встроенная версия Xerces, поставляемая с JRE).
Может выводить XML в DOM W3C, пригодный для использования в JAXB:
org.jsoup.nodes.Document soupDoc = Jsoup.parse(unescapedXml, "",
Parser.xmlParser());
org.w3c.dom.Document w3cDoc = new W3CDom().fromJsoup(soupDoc);
JAXBContext jaxbContext = JAXBContext.newInstance(CustInfo.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
CustInfo custInfo = (CustInfo) jaxbUnmarshaller.unmarshal(w3cDoc);
(досадно, что JSoup и W3C используют Document
).
Похоже, что это хорошо справляется с любым из '&'
'<'
или '>'
в атрибуте XML или в тексте, хотя есть определенные комбинации, в которых нехватка escape-символов слишком велика.