要设置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所期望的任何内容?
答案 0 :(得分:5)
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB 2 (JSR-222)专家组的成员。
您可以使用MOXy JAXB中的外部映射文档扩展名将第二个映射应用于对象模型。此映射文档可用于修改通过注释提供的元数据,或完全替换它。
详细示例
在下面的示例中,单个对象模型映射到Google和Yahoo天气API的结果: