【发布时间】:2012-11-26 19:14:31
【问题描述】:
我正在使用 JAXB 将 java 对象编组为 XML。我面临的问题是并非java对象实例的所有成员变量都需要编组XML。例如,我的完整 XML 文档应该看起来像-
<Disk>
<status>attached</status>
<size>10000000000</size>
<freeSpace>25600000<freeSpace>
<id>MI45563PO</id>
</Disk>
但在更新的情况下,只有选定的属性会更改,并且只有更改的属性才应该是编组 XML 的一部分。就像“状态”属性可以更改为“分离”一样,在这种情况下,编组的 XML 应该如下所示-
<Disk>
<status>detached</status>
</Disk>
或者,在“freeSpace”的情况下,XML 应该看起来像-
<Disk>
<freeSpace>20000000<freeSpace>
</Disk>
我的问题: 将未更改的字段定义为 null(因此将所有原始类型定义为包装类变量,如 Integer、Boolean 等)是获得所需结果的唯一解决方案吗?或者,在 JAXB 中是否有任何方法可以指定选定的字段,这些字段应编组为结果 XML,其余字段应被忽略。
请注意,需要忽略和需要包含的字段集在任何时候都不是固定的。
【问题讨论】:
标签: java xml jaxb marshalling