相互冲突的XSD导入WSDL(wsdl with conflicting xsd imports)

2019-11-01 03:15发布

我试图找到一些时间到以下问题的解决方案。 我有包含几个(6)XSD导入WSDL文件。 因为它们是外部的,以我的项目,我不能改变这些XSD的。 有4所定义一起被略微在这些模式的2定义的不同。 我试图给每个“冲突的” XSD架构它自己的包翻译。 我尝试以下绑定,但它没有做的工作:

testbindings.jaxb:

<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.1">
    <bindings schemaLocation="a.xsd">
         <schemaBindings>
               <package name="org.wsi.a" />
         </schemaBindings>
    </bindings>
</bindings>

使用: wsimport -p org.wsi -b testbindings.jaxb broker.wsdl

所有课程均在产生org.wsi并没有阶级org.wsi.a 。 如果没有-p开关所有的XSD在自己的默认包产生。 却说不出的wsimport使用特定的软件包每个XSD。 这时我用以下绑定文件,它可能不正确,但对于其中的wsimport不会抱怨:

<?xml version="1.0"?>
<jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns:xsd="http://www.w3.org/2001/XMLSchema"              xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">

<jaxws:bindings wsdlLocation="broker.wsdl" node="wsdl:definitions/wsdl:types/xsd:schema">

    <jaxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema" node="//xs:schema/xs:import[@namespace='http://docs.oasis-open.org/wsn/b-2']">>
        <jaxb:schemaBindings>
            <jaxb:package name="org.broker.wsi.b_2"/>
        </jaxb:schemaBindings>
    </jaxb:bindings>

    <jaxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema" node="//xs:schema/xs:import[@namespace='http://docs.oasis-open.org/wsn/t-1']">>
        <jaxb:schemaBindings>
            <jaxb:package name="org.broker.wsi.t_1"/>
        </jaxb:schemaBindings>
    </jaxb:bindings>

</jaxws:bindings>

在包org.broker.wsi.b_2和org.broker.wsi.t_1,不生成文件。

我用绑定在指定的: http://docs.oracle.com/cd/E13222_01/wls/docs103/webserv/data_types.html#wp227713但可能不正确。

建议,欢迎。

Answer 1:

设置为WSDL,内部XSD和外部XSD的正确的包名的问题在提问/回答描述:

  • wsimport的-如何生成单独的项目/文件夹的服务端点类和JAXB类 ,发表: DMA-K

INT-bindings.xml文件:

<?xml version="1.0"?>
<jaxws:bindings version="2.0"
                xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" 
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"                 
            xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
            wsdlLocation="broker.wsdl">

<jaxws:package name="org.broker.wsi" />

<jaxb:bindings node="//xsd:schema">
    <jaxb:schemaBindings>
        <jaxb:package name="org.broker.wsi.al"/>
    </jaxb:schemaBindings>
</jaxb:bindings>

该外部绑定文件(略):

<jaxb:bindings version="1.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <jaxb:bindings schemaLocation="http://docs.oasis-open.org/wsn/b-2.xsd" node="//xsd:schema">
            <jaxb:schemaBindings>
                 <jaxb:package name="org.broker.wsi.oasis.b2"/>
            </jaxb:schemaBindings>
    </jaxb:bindings>
</jaxb:bindings>


文章来源: wsdl with conflicting xsd imports