Java Jaxb可以在没有根元素的情况下封送子元素吗?
我不确定下面的问题是否适用于jaxb,但我还是会问 在某个项目中,我们使用jaxb和已定义的模式来创建xml文件的下一个结构Java Jaxb可以在没有根元素的情况下封送子元素吗?,java,xml,jaxb,marshalling,Java,Xml,Jaxb,Marshalling,我不确定下面的问题是否适用于jaxb,但我还是会问 在某个项目中,我们使用jaxb和已定义的模式来创建xml文件的下一个结构 <aaa> <bbb> more inner children here </bbb> <bbb> more inner children here </bbb> </aaa> 因此,我们将得到下一个结果: <bbb&g
<aaa>
<bbb>
more inner children here
</bbb>
<bbb>
more inner children here
</bbb>
</aaa>
因此,我们将得到下一个结果:
<bbb>
<inner child1/>
<inner child2/>
...
</bbb>
...
我目前无法这样做,因为封送员喊道我没有定义@XmlRootElement
实际上,我们试图避免将模式分成两个模式的情况,一个只有bbb,另一个aaa导入bbb
提前谢谢 我可能迟到了3年,但你有没有试过这样的方法:
public static String marshal(Bbb bbb) throws JAXBException {
StringWriter stringWriter = new StringWriter();
JAXBContext jaxbContext = JAXBContext.newInstance(Bbb.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
// format the XML output
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
QName qName = new QName("com.yourModel.bbb", "bbb");
JAXBElement<Bbb> root = new JAXBElement<Bbb>(qName, Bbb.class, bbb);
jaxbMarshaller.marshal(root, stringWriter);
String result = stringWriter.toString();
LOGGER.info(result);
return result;
}
公共静态字符串封送处理(Bbb Bbb)抛出JAXBEException{
StringWriter StringWriter=新StringWriter();
JAXBContext JAXBContext=JAXBContext.newInstance(Bbb.class);
Marshaller jaxbMarshaller=jaxbContext.createMarshaller();
//格式化XML输出
setProperty(Marshaller.JAXB_格式化的_输出,true);
QName QName=新的QName(“com.yourModel.bbb”,“bbb”);
JAXBElement root=newjaxbelement(qName,Bbb.class,Bbb);
jaxbMarshaller.marshall(root,stringWriter);
字符串结果=stringWriter.toString();
LOGGER.info(结果);
返回结果;
}
以下是我在不使用rootElement的情况下封送/解封送时使用的文章:
这对我来说很好用。我写这封回信是为了其他寻找答案的迷失的灵魂
祝你一切顺利:)我可能迟到了5年:)但是你有没有试过这样的事情:
StringWriter stringWriter = new StringWriter();
JAXB.marshal(bbb, stringWriter);
String bbbString = stringWriter.toString();
我在这篇文章中找到了解决方案:[使用Jaxb进行碎片编组][1][1]:
javax.xml.bind.Jaxb
StringWriter stringWriter = new StringWriter();
JAXB.marshal(bbb, stringWriter);
String bbbString = stringWriter.toString();