我有一个模块,我有我的XSD架构,其中一个架构可以使用架构位置中的相对路径引用另一个架构:
在这里,我还使用xjc从这些xsd模式生成Jaxb bean.
现在我有一个模块,我的web服务是使用spring-ws(2.0.4)实现的.我想使用静态WSDL并使用xsd模式发布它,其中模式位置将转换为URL,如“http://myerver.url.com/my.xsd”.
问题是如何优雅地实现这一目标?
(或者将XSD合并到一个模式中,然后合并到WSDL中)
(理论上我可以使用脚本转换这些XSD并将它们添加到资源(xsd和wsdl)到(spring dispatcher)servlet,但在我看来它并不舒服)
最佳答案
Spring Web服务实际上可以优雅地实现它.
您需要做的就是在bean定义xml文件中定义一个具有正确id(将用作没有.xsd的xsd名称)的SimpleXsdSchema bean,如下所示
您需要做的就是在bean定义xml文件中定义一个具有正确id(将用作没有.xsd的xsd名称)的SimpleXsdSchema bean,如下所示
更多信息(包括示例)可在以下链接中找到:
Static WSDL with imported XML Schema in Spring Web Service