我使用eclipse IDE开发了一个ATOM feed。 ATOM提要基于org.apache.wink.common.model.atom.AtomFeed。使用JAXB生成xml内容。一切正常;但是,我需要向原子提要添加一个处理指令,看来没有可用的暴露方法允许我这样做。
xml中的第一行是标准
<?xml version="1.0......etc>
我需要添加一个额外的
<?bla bla ?>
此条目后的指令。
我需要一些方法在返回Feed之前插入此指令。 有一种unmarshal方法可用,我想知道我是否可以以某种方式解组Feed,添加处理指令,然后封送返回对象的反馈。这似乎是一个黑客,但我已经没有想法了!
我到处搜索过,我似乎无法找到任何可以证明如何实现这一目标的实例。任何帮助/替代方案将不胜感激。
答案 0 :(得分:0)
您可以创建XMLStreamWriter
然后使用它来编写处理指令,然后将对象封送到此XMLStreamWriter
。当您编组已经启动的文档时,您需要在Marshaller
上设置以下属性。
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
感谢您的快速回复...... Feed已退回 由框架自动处理。即@GET @Produces(MediaType.APPLICATION_ATOM_XML) //@Produces(MediaType.APPLICATION_XML)@Path(value =“{pnref}”)public AtomFeed doInquiry(@PathParam(value =“pnref”)String pnref,
您可以实现利用JAXB并添加处理指令的MessageBodyWriter
。