java marshaller_java – 更改JAXB marshaller生成的XML头

我目前正在使用以下代码将对象编组为xml字符串

JAXBContext context;

try {

context = JAXBContext.newInstance(heartbeat.getClass());

StringWriter writer = new StringWriter();

Marshaller marshaller = context.createMarshaller();

heartbeat.setHeader(header);

heartbeat.setHeartbeatEvent(event);

marshaller.marshal(heartbeat, writer);

String stringXML = writer.toString();

return stringXML;

} catch (JAXBException e) {

throw new RuntimeException("Problems generating XML in specified "

+ "encoding, underlying problem is " + e.getMessage(),

e);

}

这会产生以下标题

我想要的输出如下

通过将此添加到marshaller

marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.FALSE);

marshaller.setProperty("com.sun.xml.bind.xmlHeaders", "<?xml version=\"1.0\"?>");

我收到

并将JAXB_FRAGMENT属性更改为TRUE将完全删除标头.我一直在跟踪JAXB – Remove ‘standalone=”yes”‘ from generated XML线程试图解决问题,但到目前为止我没有运气.有人可以给我一些关于如何从JAXB marshaller获取所需标题的见解吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值