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

标签 java xml jaxb

要设置 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/

相关文章:

java - 如何使用相同的 JAXB 类将其编码和解码到不同的命名空间中?

java - Android中如何在一定时间后显示通知

java - 在 Java 中将字节转换为 int 的最优雅方法

java - 使用自定义 TableCellRenderer 导出 JTable

xml - 构建 xml 负载以传入 dss 端点 wso2 后,在 esb 中出现错误 "while building message, Unexpected close tag </body>; expected </HR> "

java - 解析 RESTful XML 响应并在 JTable 中显示

java - 如何在新建的Excel文件中添加新的工作表

c# - 序列化列表持有 XML 接口(interface)

c# - 如何在 ASP.NET Web 服务中接收 XML?

java - JAXB/XJC 生成 JAXBElement<String> 而不仅仅是 String(以处理 null 大小写)