java - JAXB : Xml tags when empty

标签 java jaxb

使用 JAXB,我将我的自定义对象编码到 Xml 中。

考虑一个像这样的对象:

@XmlRootElement(name = "Config")
public class Config {

    @XmlElement(name = "projectVersion")
    private String version;

如果 version 的值为 null,那么我将在 setter 中手动设置它。

this.version=version==null?"":version;

但是我得到的标签输出如下:

</version>

但是客户要求输出像

<version></version>

我怎样才能实现它?除了在 setter 方法中设置空白空间“”之外?

谢谢。

最佳答案

为什么您的客户需要它?出于什么原因?

<version/><version></version>是严格等价的。这些都是空元素,句号。

由于从规范的角度来看,这两种语法是等效的,因此这纯粹取决于实现。尝试编码到 new IndentingXMLStreamWriter(file)和/或设置marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE)在编码器上。

关于java - JAXB : Xml tags when empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40928430/

相关文章:

java - 跨不同操作系统读取换行符

java - 如何查找 URL 中的特定单词?

java - 我是否需要在将对象放入 MySql 之前对其进行序列化?

java - Servlet 请求和 window.location.href

java - 关于多项式乘法的问题

java - JAXB 解码异常

java - 使用引用进行部分解码

java - JaxB 将多个 XMLType 映射到单个类

java - 未在 JAXB 生成的类中设置默认 boolean 值

java - 与 Kotlin 泛型的混淆