【发布时间】:2012-03-24 08:04:44
【问题描述】:
当我用这个属性编组一个 XML 时
marshal.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
marshal.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
它会在最顶部生成一个空的换行符
//Generate empty line break here
<XX>
<YY>
<PDF>pdf name</PDF>
<ZIP>zip name</ZIP>
<RECEIVED_DT>received date time</RECEIVED_DT>
</YY>
</XX>
我认为原因是因为marshal.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE); 删除了<?xml version="1.0" encoding="UTF-8" standalone="yes"?>,在输出xml 的开头留了一个换行符。有没有办法来解决这个问题?我使用的是 JDK 6 自带的 JAXB,Moxy 有这个问题吗?
【问题讨论】:
-
好吧。我试过 Moxy JAXB,MOxy 没有这个问题。 Glad Moxy 现在是 Glassfish3.1.2 的标准提供者。 Moxy 何时会成为 JDK 的标准 JAXB 提供者?
-
EclipseLink JAXB (MOXy) 通过了与参考实现相同的合规性测试,因此可以放心使用我们 (blog.bdoughan.com/2011/05/…)。正如您所指出的,MOXy 包含在 GlassFish 3.1.2 (blog.bdoughan.com/2012/02/glassfish-312-is-full-of-moxy.html) 中。我们也是 WebLogic 12c (blog.bdoughan.com/2011/12/…) 中默认的 JAXB 实现。
-
我认为 JDK 7 一定已经解决了这个问题,因为我似乎没有这个问题。