我正在尝试从本地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标志的不受支持的功能还是我在做什么?
答案 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