要设置XML元素的名称,我使用这样的注释:
@XmlElement(name = "customer_id")
public String getId(){}
Run Code Online (Sandbox Code Playgroud)
我必须与两个不同的Web服务进行通信.一个表达了一个名为id的元素,customer_id但另一个表达了要命名的id元素id.我通过创建Customer具有相同属性的第二个类来解决问题.唯一不同的是它使用以下注释
@XmlElement(name = "id")
public String getId(){}
Run Code Online (Sandbox Code Playgroud)
它有一个拷贝构造函数,其复制所有的属性Customer1来Customer2.当我与第一个Web服务通信时,我发送一个Customer1对象,另一个Web服务获取一个Customer2对象.
是否有可能只使用一个Customer对象,但将id属性重命名为webservice所期望的任何内容?
注意: 我是EclipseLink JAXB(MOXy)的负责人,也是JAXB 2(JSR-222)专家组的成员.
您可以使用MOXy JAXB中的外部映射文档扩展来将第二个映射应用于对象模型.此映射文档可用于修改通过注释提供的元数据,或完全替换它.
有关详细示例
在下面的示例中,单个对象模型映射到Google和Yahoo天气API的结果: