CXF:如何使用JAXB外部绑定文件更改WSDL导入的XML Schema的包?

ree*_*eef 5 maven-2 wsdl2java jaxb

我有一个WSDL文件,它导入了几个XML Schema,每个都有相同的命名空间(让我们称之为A).我正在尝试使用JAXB外部绑定文件来更改这些模式的生成包名称(比如说B).这是一个例子:

我有一个POM文件,其中包含从WSDL生成代码的配置(使用cxf-codegen-plugin).

我的WSDL:

<definitions ...>
    <types>
         <xsd:schema elementFormDefault="qualified" targetNamespace="C">
             <xsd:import namespace="A" schemaLocation="SCHEMA_REF"/>
             <xsd:import namespace="A" schemaLocation="SCHEMA_REF"/>
             ...
         </xsd:schema>
    </types>
    ...
</definitions>
Run Code Online (Sandbox Code Playgroud)

这是我的实际绑定文件根本不起作用,它似乎根本没有应用(没有错误消息...).

<jaxws:bindings wsdlLocation="WSDL_LOCATION" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" jaxb:version="2.0">
    <jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='C']/xs:import[@namespace='A']">.
        <jaxb:schemaBindings>
            <jaxb:package name="B" />
        </jaxb:schemaBindings>
    </jaxws:bindings>
</jaxws:bindings>
Run Code Online (Sandbox Code Playgroud)

因为我在生成中没有任何错误消息,可能是因为用于访问导入模式的XPath表达式不好...

你们有什么线索吗?我有点被困在这里......

提前感谢您的投入!

Sta*_*tas 0

有趣的是,您没有得到答案:) 不幸的是,无法存档您想要的内容。唯一的方法是为您拥有的每个架构文件定义单独的绑定文件,这样就可以正常工作。