3 votes

Comment puis-je marshaler un objet JAXB vers XOM ?

J'essaie de déterminer les éléments à assembler pour convertir un POJO JAXB en document XOM, et vice versa.

La JAXB Marshaller prennent diverses cibles, telles que les suivantes Result mais aucun d'entre eux n'a d'adaptateur XOM. Ce qui est irritant, c'est que l'API XOM dispose d'un adaptateur XOM. XOMResult mais elle est protégée par un package et n'est utilisée qu'en interne.

Existe-t-il un autre moyen de faire du marshal vers/depuis XOM sans recourir à des tampons de type String ou byte ?

1voto

laz Points 12212

Je ne suis pas sûr que vous soyez opposé à l'utilisation de DOM pour accomplir ceci, puisque vous utilisez probablement XOM pour éviter DOM ! Quoi qu'il en soit, en utilisant un JAXB Binder tel que décrit aquí ainsi que celle de XOM DOMConverter Vous pouvez donc passer de JAXB à DOM et à XOM sans utiliser de String ou de byte buffer.

Il est dommage que XOM ne dispose pas d'un utilitaire pour créer un document XOM à partir d'un SAX ContentHandler, puisque JAXB supporte également le marshalling vers une instance de cet objet. XOM a un SAXConverter qui peut créer un ContentHandler à partir d'un Document, mais pas l'inverse.

Il y a un fil de discussion à ce sujet sur le site de la Commission européenne. XOM-intérêt liste de diffusion.

1voto

Andrej Fink Points 231

J'ai trouvé un vieux projet nux :

a http://acs.lbl.gov/software/nux//api/nux/xom/pool/XOMUtil.html

jaxbMarshal/jaxbUnmarshal utilisent DOMConverter ;-(

b. http://acs.lbl.gov/software/nux/api/nux/xom/io/StaxUtil.html ...comprend également une implémentation de XOM Builder qui utilise un analyseur StAX au lieu d'un analyseur SAX ; plus une implémentation de XMLStreamReader lisant à partir d'un document ou d'un fragment XOM sous-jacent ; plus d'autres outils.

StaxUtil.createXMLStreamReader(Node Root) Construit et renvoie une implémentation d'un parseur StAX XMLStreamReader pull qui lit à partir d'un noeud XOM sous-jacent ; typiquement un document ou un fragment (sous-arbre) ; idéal pour une conversion efficace d'un arbre XOM vers SOAP/AXIOM, JAXB 2, JiBX ou XMLBeans, par exemple lors de la conversion incrémentale de résultats XQuery via un Unmarshaller, peut-être en combinaison avec un StreamingPathFilter.

Peut-être que cela peut aider ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X