JAXB使用XMLEventWriter生成未格式化的XML

时间:2012-10-12 16:15:44

标签: java jaxb formatted

我正在使用JAXB来生成XML文件,并且由于业务需要,我目前正在使用XMLEventWriter将其写入其他XML文件的中间:

marshaller.marshal(jaxbElement, xmlEventWriter);

目前正在设置一些属性,如:

marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "utf-8");
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);

但是,除了 JAXB_FORMATTED_OUTPUT 设置为 true 之外,我的 XML未被格式化

有谁知道可能是什么问题? 这只发生在我使用XMLEventWriter ...

提前致谢。

2 个答案:

答案 0 :(得分:3)

当您使用XMLEventWriter作为接收器时,JAXB编组器仅负责向其发送适当的XML事件,XMLEventWriter可能仍然选择写出未格式化的XML。除了XMLEventWriter之外,我的建议是检查Marshaller的配置。

答案 1 :(得分:0)

不幸的是,默认的XmlEventWriter实现没有缩进。 stax-utils库提供了IndentingXMLEventWriter,在这些情况下可能有所帮助。