【发布时间】:2014-02-24 00:31:11
【问题描述】:
是否可以在不使用 JAXB 本身的情况下通过 StAX 编组 Java 类(使用 JAXB 注释进行注释)?
【问题讨论】:
-
如果我可以问,你认为你为什么需要这个?
-
StAX 比 JAXB 快得多,这是主要原因
标签: java jaxb marshalling stax
是否可以在不使用 JAXB 本身的情况下通过 StAX 编组 Java 类(使用 JAXB 注释进行注释)?
【问题讨论】:
标签: java jaxb marshalling stax
否,要使用 JAXB 注释进行编组,您需要 JAXB - 这就是它的作用。 是的,当您使用 Marshaller 序列化 JAXB 对象树时,您可以使用 StAX 作为输出编写器。
它们是两个不同的东西。 StAX 并不比 JAXB 快,它做了一些不同的事情——它需要在 JAXB 生成正确的 XML 事件后创建文本 XML 以告诉 StAX XML 应该是什么样子。
在javax.xml.bind.Marshaller 上使用以下方法将您的 JAXB 对象发送到 StAX:
/**
* Marshal the content tree rooted at <tt>jaxbElement</tt> into a
* {@link javax.xml.stream.XMLStreamWriter}.
*
* @param jaxbElement
* The content tree to be marshalled.
* @param writer
* XML will be sent to this writer.
*
* [...]
* @since JAXB 2.0
*/
public void marshal( Object jaxbElement, javax.xml.stream.XMLStreamWriter writer )
throws JAXBException;
【讨论】: