无法使用xjc编译器和绑定文件从wsdl文件生成顶级JAXB

时间:2015-04-18 12:30:56

标签: java jaxb wsdl xjc

我正在尝试从本地wsdl文件生成顶级JAXB(使用绑定文件)。

这里给出了绑定文件(binding.xjb)的内容:

<jaxb:bindings
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    version="2.1">
<jaxb:globalBindings localScoping="toplevel"/>

我使用的命令如下:

xjc -wsdl getShops.wsdl -b binding.xjb

并且wsdl文件被赋予here

它成功创建了jaxb类,但它们是单个文件中的嵌套类。

这是xjc编译器的-wsdl标志的不受支持的功能还是我在做什么?

1 个答案:

答案 0 :(得分:1)

从wsdl中提取XSD架构。

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://new.webservice.namespace" elementFormDefault="qualified">
    <xs:element name="getShopsRequest">
        <xs:complexType>
            <xs:attribute name="ui" type="xs:string"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="shoplist">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="shop"  maxOccurs="unbounded" >
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="id" type="xs:integer"/>
                            <xs:element name="name" type="xs:string" />
                            <xs:element name="companyname" type="xs:string"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>

            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

运行命令:

xjc -wsdl getShops.xsd -b binding.xjb

输出控制台:

parsing a schema...
compiling a schema...
namespace/webservice/_new/GetShopsRequest.java
namespace/webservice/_new/ObjectFactory.java
namespace/webservice/_new/Shop.java
namespace/webservice/_new/Shoplist.java
namespace/webservice/_new/package-info.java