是否可以在不使用JAXB本身的情况下用StAX编组java类(使用JAXB注释注释)?
答案 0 :(得分:2)
否,要使用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;