首页 > 解决方案 > 将两种不同的 xml 模式映射到一种通用 Java 对象模型的选项

问题描述

我正在构建两个不同 Web 服务之间的集成。Web 服务 A 以以下形式提供数据:

<response>
<result>
<sys_title>some title</sys_title>
.....  //other xml elements
<sys_id>1234</sys_id>
</result>
...// repeating result elements
</response>

Web 服务 B 以这种格式存储数据:

<return>
<item>
<title>some title</title>
.....  //other xml elements
<id>1234</id>
</item>
...// repeating item elements
</return>

我知道如何使用 JAXB 将每个 Web 服务的 xml 内容映射到一个单独的 POJO 类中。所以,我最终得到

ClassA { 
@XmlElement(name="sys_title")
String title;
@XmlElement(name=sys_id")
String id;
}

ClassB {
@XmlElement(name="title")
String title;
@XmlElement(name="id")
String id;
}

由于我的集成感兴趣的数据是常见的,即 sys_title = title 和 sys_id = id,是否可以使用 JAXB 或其他一些解决方案来定义一个常见的映射?沿着这条线的东西(显然不支持我正在写的东西)

CommonClass {
@XmlElement(name="sys_title")
@XmlElement(name="title")
String title;

@XmlElement(name="sys_id")
@XmlElement(name="id")
String id;

基本上,我试图避免使用 POJO 类来支持 Web 服务 A、Web 服务 B 和我正在使用的通用模型。示例函数,查找应用程序 A 中的对象,通过 Web 服务 A 公开而 Web 服务 B 中不存在,并在应用程序 B 中创建这些对象。

标签: javaxmljaxb

解决方案


推荐阅读