要设置 XML 元素的名称,我使用这样的注释:
@XmlElement(name = "customer_id")
public String getId(){}
我必须与两个不同的网络服务进行通信。一个指定名为 customer_id
的 id 元素,而另一个指定名为 id
的 id 元素。我通过创建具有相同属性的第二个 Customer
类解决了这个问题。唯一不同的是它使用了下面的注解
@XmlElement(name = "id")
public String getId(){}
它有一个复制构造函数,可将所有属性从 Customer1
复制到 Customer2
。当我与第一个 web 服务通信时,我发送了一个 Customer1
对象,另一个 web 服务获得了一个 Customer2
对象。
有没有可能只使用一个 Customer
对象,但将 id
属性重命名为 web 服务期望的任何名称?
最佳答案
注意:我是 EclipseLink JAXB (MOXy) JAXB 2 (JSR-222) 的领导和成员专家组。
您可以使用 MOXy JAXB 中的外部映射文档扩展将第二个映射应用到您的对象模型。该映射文档可用于修改通过注释提供的元数据,或完全替换它。
详细示例
在下面的示例中,单个对象模型映射到 Google 和 Yahoo 天气 API 的结果:
关于java - JAXB:从 Java 代码更改 XML 元素的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021374/