我正在使用JAXB将java对象编组为XML.我面临的问题是,并非所有java对象实例的成员变量都需要编组XML.例如,我的完整XML文档应该看起来像 -
<Disk>
<status>attached</status>
<size>10000000000</size>
<freeSpace>25600000<freeSpace>
<id>MI45563PO</id>
</Disk>
Run Code Online (Sandbox Code Playgroud)
但是在更新的情况下,只有选定的属性会发生变化,只有更改过的属性应该是编组XML的一部分.就像'status'属性可以改为'detached'一样,在这种情况下,编组的XML应该如下所示 -
<Disk>
<status>detached</status>
</Disk>
Run Code Online (Sandbox Code Playgroud)
或者,在'freeSpace'的情况下,XML应该看起来像 -
<Disk>
<freeSpace>20000000<freeSpace>
</Disk>
Run Code Online (Sandbox Code Playgroud)
我的问题:将未更改的字段定义为null(因此将所有基本类型定义为包装类变量,如Integer,Boolean等)是获得所需结果的唯一解决方案?或者,在JAXB中是否有任何方法可以指定所选字段,这些字段应该在结果XML中进行编组,其余字段应该被忽略.
请注意,需要忽略的字段集和需要包含的字段在任何时间点都不固定.