我正在使用标准 JAXB 实现。
这是我带注释的课程(是一组课程的一部分)
@XmlType()
@XmlAccessorType(FIELD)
class MyClass {
@XmlValue
protected final String value = null;
@XmlAttribute
protected String attr;
...get/set for attr...
}
我正在使用编写根对象
JaxbContext ctx = JAXBContext.newInstance("path.to.package");
XMLStreamWriter writer = new IndentingXMLStreamWriter(file); //stax-utils writer
ctx.marshal(rootObject, writer);
结果是<my-class attr="attrValue"></my-class>
但我需要空标签作为<my-class attr="attrValue"/>
。
我尝试了编写器和目标流(不仅是文件,还有 StringWriter 和其他文件,但我需要将对象持久化到文件)的一些不同组合(并阅读了十几个 SO 问题)。
有什么建议或解决方案吗?
这是编组到XMLStreamWriter
。如果您可以编组到File
, FileOutputStream
, or FileWriter
获得您正在寻找的行为。
Note:
要使用这些输出目标格式化输出,您可以在您的Marshaller
:
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)