相关疑难解决方法(0)

JAXB避免保存默认值

是否有任何方法可以使JAXB不保存哪些值是@Element注释中指定的默认值,然后在从XML加载null或空的元素时将值设置为它?一个例子:

class Example
{
    @XmlElement(defaultValue="default1")
    String prop1;
}

Example example = new Example();
example.setProp1("default1");
jaxbMarshaller.marshal(example, aFile);
Run Code Online (Sandbox Code Playgroud)

应该生成:

<example/>
Run Code Online (Sandbox Code Playgroud)

并在加载时

Example example = (Example) jaxbUnMarshaller.unmarshal(aFile);
assertTrue(example.getProp1().equals("default1"));
Run Code Online (Sandbox Code Playgroud)

我试图这样做是为了生成一个干净的XML配置文件,并使其更好的可读性和更小的尺寸.

提前退位并表示感谢.

java jaxb marshalling unmarshalling

5
推荐指数
1
解决办法
2771
查看次数

编组时可选的JAXB xml属性

当我使用JAXB编组java对象时,我得到了xml元素

<error line="12" column="" message="test" />
Run Code Online (Sandbox Code Playgroud)

但我想要xml如下

<error line="12" message="test" />
Run Code Online (Sandbox Code Playgroud)

如果列值为空,那么我需要获取如上所示的xml,否则我需要获取元素中的column属性.

有没有办法得到它?

jaxb xml-attribute

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

jaxb ×2

java ×1

marshalling ×1

unmarshalling ×1

xml-attribute ×1