如何将JAXB对象封送到COM?

时间:2009-09-15 17:02:58

标签: java xml jaxb xom

我正在试图弄清楚我需要将哪些位插在一起以将JAXB POJO封送到XOM文档,反之亦然。

JAXB Marshaller接口的marshal方法采用各种目标,例如Result,但它们都没有XOM适配器。令人生畏的是,XOM API确实有XOMResult实现,但是它受到包保护,并且只在内部使用。

还有其他方法可以在不使用字符串或字节缓冲区的情况下编组到XOM或从XOM编组吗?

2 个答案:

答案 0 :(得分:1)

我不确定你是否对使用DOM来实现这一目标不利,因为你可能正在使用XOM来避免使用DOM!无论如何,使用如here所述的JAXB Binder以及XOM的DOMConverter,您可以从JAXB到DOM到XOM,而无需使用String或字节缓冲区。

XOM没有实用程序从SAX ContentHandler创建XOM文档太糟糕了,因为JAXB还支持编组到该对象的实例。 XOM有SAXConverter可以从Document创建ContentHandler,但不是相反。

这是XOM-interest邮件列表中与此相关的主题。

答案 1 :(得分:1)

我找到了旧项目nux

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

jaxbMarshal / jaxbUnmarshal使用DOMConverter; - (

http://acs.lbl.gov/software/nux/api/nux/xom/io/StaxUtil.html ...还包括一个使用StAX解析器而不是SAX解析器的XOM Builder实现;加上从底层XOM文档或片段读取的XMLStreamReader实现;加上其他工具。

StaxUtil.createXMLStreamReader(Node root)           构造并返回从底层XOM节点读取的StAX XMLStreamReader拉解析器实现;通常是文档或片段(子树);非常适合将XOM树高效转换为SOAP / AXIOM,JAXB 2,JiBX或XMLBeans,例如,通过Unmarshaller逐步转换XQuery结果时,可能与StreamingPathFilter结合使用。

可能这有帮助吗?