Java 两个相等名称空间的一组JAXB类

Java 两个相等名称空间的一组JAXB类,java,xml,jaxb,xsd,Java,Xml,Jaxb,Xsd,我正在使用来自Web服务的数据,该Web服务有两个端点—一个是测试端点,另一个是生产端点(我无法修改此项)。问题是,生产端点和测试端点在根元素中具有不同的“xmlns”。所以,如果XSD用于测试,那么JAXB无法解析prod响应,反之亦然 使用SpringRESTTemplate和Jaxb2Marshaller使用数据 用于测试的示例文档片段: <element xmlns="https://example.com/test" 首先,抱怨在测试和生产中使用不同名称空间的疯狂 然后检查 从

我正在使用来自Web服务的数据,该Web服务有两个端点—一个是测试端点,另一个是生产端点(我无法修改此项)。问题是,生产端点和测试端点在根元素中具有不同的“xmlns”。所以,如果XSD用于测试,那么JAXB无法解析prod响应,反之亦然

使用SpringRESTTemplate和Jaxb2Marshaller使用数据

用于测试的示例文档片段:

<element xmlns="https://example.com/test"

首先,抱怨在测试和生产中使用不同名称空间的疯狂

然后检查

从生产XSD生成架构。对于测试端点,您需要通过添加自定义
org.springframework.http.converter.xml.MarshallingHttpMessageConverter
来配置RestTemplate正在使用的JAXBContext(用于封送和解封)


您的自定义
NamespaceFilter
startElement
endElement
方法应该检查您试图替换的名称空间,并在必要时替换它。

另一种方法是使用XSLT@volodymyr是的,那也行。。。不过,我怀疑这需要更多的努力
<element xmlns="https://example.com/prod"