JAXB:从Java代码更改XML元素的名称?

时间:2011-11-05 16:05:47

标签: java xml jaxb

要设置XML元素的名称,我使用这样的注释:

@XmlElement(name = "customer_id")
public String getId(){}

我必须与两个不同的Web服务进行通信。一个表达名为customer_id的id元素,但另一个表达要被命名为id的id元素。我通过创建具有相同属性的第二个Customer类来解决问题。唯一不同的是它使用以下注释

@XmlElement(name = "id")
public String getId(){}

它有一个复制构造函数,可以将所有属性从Customer1复制到Customer2。当我与第一个Web服务通信时,我发送一个Customer1对象,另一个Web服务获取一个Customer2对象。

是否有可能只使用一个Customer对象,但将id属性重命名为webservice所期望的任何内容?

1 个答案:

答案 0 :(得分:5)

注意:我是EclipseLink JAXB (MOXy)主管,是JAXB 2 (JSR-222)专家组的成员。

您可以使用MOXy JAXB中的外部映射文档扩展名将第二个映射应用于对象模型。此映射文档可用于修改通过注释提供的元数据,或完全替换它。

详细示例

在下面的示例中,单个对象模型映射到Google和Yahoo天气API的结果: