gpt4 book ai didi

java - 如何使用 jaxb/moxy 管理多种 xml 格式

转载 作者:行者123 更新时间:2023-12-02 06:00:42 24 4
gpt4 key购买 nike

我需要对不受我管理的后端执行一些调用。关键是它们使用不同的 xml 格式来传输数据。即使对于相同的调用,请求和响应也是不同的:相同的数据但不同的根标签。起初,我尝试使用注释(moxy jaxb)将它们映射到不同的 bean,但是我必须管理其中的许多 bean,并且更改成本太高。然后我切换到 xml 文件映射:它似乎比以前的选择更好,但我仍然必须管理大量 xml 文件(douzen)。为了保持项目的轻便性和可扩展性,您有什么建议吗?

预先感谢您的帮助。

最佳答案

我们在 EclipseLink JAXB (MOXy) 中添加外部映射文档的原因之一是允许您将其他 XML 表示应用到对象模型:

需要注意的一件事是根 xml-bindings 元素上的 xml-mapping-metadata-complete 属性。当此设置为 true 时,XML 文档将替换所有其他映射,而当它为 false 或不存在时,它会修改元数据。

<?xml version="1.0"?>
<xml-bindings
xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"
package-name="blog.weather"
xml-mapping-metadata-complete="true">

使用修改元数据方法,您可以传入多个绑定(bind)文件来创建上下文,其中后续映射文件可用于逐步调整元数据。

    Map<String, Object> properties = new HashMap<String, Object>(1);
List<String> bindingFiles = new ArrayList<String>(2);
bindingFiles.add("version2.xml");
bindingFiles.add("version3.xml");
properties.put(JAXBContextFactory.ECLIPSELINK_OXM_XML_KEY, bindingFiles);
JAXBContext jc = JAXBContext.newInstance(new Class[] {WeatherReport.class}, properties);

关于java - 如何使用 jaxb/moxy 管理多种 xml 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22699789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com