使用JAXB的XML标头标记

时间:2012-01-18 05:28:23

标签: java jaxb

现在我将其作为JAXB Marshaller的XML输出

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><create></create>

但我希望我的根元素为:

<create xmlns="http://ws.abc.com" xmlns:doc="http://ws.abc.com">

我是否需要使用解析器修改它,或者是否有可用的注释。

2 个答案:

答案 0 :(得分:36)

您可以在Marshaller上设置以下属性以删除标题:

marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);

了解更多信息

答案 1 :(得分:1)

我过去曾使用Transformer。您需要类似以下示例代码的内容:

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StreamResult transformedDoc = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(content); // Where content is a org.w3c.dom.Document object.

transformer.transform(source, transformedDoc);

所以也许你的编组然后处理。不确定这是否是最好的方法,但它会起作用。