Dis*_*ish 7 java xml jaxb marshalling
我在两个单独的步骤中编组我的对象.一个添加Header,另一个添加Body.现在当我使用这段代码
marshaller.marshal(payload, writer);
//payload is Objects name and writer is StringWriter class object
Run Code Online (Sandbox Code Playgroud)
XML标记<?xml version="1.0" encoding="utf-8"?>
在最终输出文件中添加两次.
[<?xml version="1.0" encoding="utf-8"?>]
当我在编组正文部分时,如何才能第二次添加XML标记?
我已经使用了Marshaller界面的所有属性,但这没有帮助.
您需要执行以下操作:
如果可能,使用StAX XMLStreamWriter
进行手动编写和编组.我的博客上有一个相关的例子:
注意:
当您编组到XML文档中时,必须在其上指定以下属性Marshaller
.
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
Run Code Online (Sandbox Code Playgroud)
这个问题的解决方案比编写自己的代码简单得多.
您需要在Marshaller上将JAXB_FRAGMENT属性指定为true以避免此问题.这个属性让JAXB知道它正在编组到文档的中间,并且它不应该写标题.
所以我在编写BODY部分之前就保留了以下代码:
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力!
归档时间: |
|
查看次数: |
1538 次 |
最近记录: |