【发布时间】:2012-05-01 13:03:43
【问题描述】:
我们有一些带有 JAXB 注释的实体,因此我们可以将一些“传入”XML 解组到 pojo。我们现在需要将 pojo 编组为 XML,但格式与传入的 xml 不同。这样做的最佳方法是什么?
【问题讨论】:
我们有一些带有 JAXB 注释的实体,因此我们可以将一些“传入”XML 解组到 pojo。我们现在需要将 pojo 编组为 XML,但格式与传入的 xml 不同。这样做的最佳方法是什么?
【问题讨论】:
我的解决方案是在 JAXB 对象中使用额外的“版本”字段来区分多个版本的绑定。通常,我使用 enum 作为它的类型,即 枚举版本 {V1, V2, ...};
所以对于特定的 XML 元素字段,我将 getField() 方法定义为
@XmlElement
public String getField() {
if (version == Version.V1) {
return field;
} else if (version == Version.V2) {
return null; // hidden
}
}
在编组之前,只需将版本值设置为所需的枚举值,其余的由 JAXB 处理。
【讨论】: