java - 将两种不同的 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 中创建这些对象。
解决方案
推荐阅读
- javascript - 如何在图像上获得正确的像素颜色 [React Native]
- java - Java String 追加字符和字符串
- python - 将 Google Ads API 结果放入 Dataframe
- python - 如何计算整个集群的剪影分数
- vim - Ctrl+6 不是 Vim 中的编辑器命令(在 .vimrc 中切换语言)
- c - 为什么'false'的类型是int?(CS50)
- r - 无效因子水平,表中生成NA
- reactjs - 使用firebase firestore删除文档功能的问题(代码运行,文档仍然存在于firestore中)-React / Typescript / Redux
- python - 如何增加 BERT keras hub 层输入的秩(ndim)以进行学习排名
- python - 如何解释训练结果