我使用以下类型来生成Web服务响应类:
<xsd:complexType name="SaveUniversalIdsRequest">
<xsd:sequence>
<xsd:element name="persist" type="mu:UniversalIdList" />
<xsd:element name="remove" type="xsd:long" />
<xsd:element name="secString" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
它会生成一个类 protected long remove;
但我想生成一个数组。添加minOccurs =“0”maxOccurs =“unbounded”会生成一个List。
请,协助。
答案 0 :(得分:0)
你可以找到这个: What is the WSDL declaration for an array of integers?
<element name="ArrayOfLongs">
<complexType>
<sequence>
<element maxOccurs="unbounded" name="remove" type="xsd:long"/>
</sequence>
</complexType>
</element>
答案 1 :(得分:0)
您需要使用jaxb自定义绑定功能 - Customizing XML Schema-to-Java Mapping Using Binding Declarations
尝试使用以下命令:
wsimport -verbose -b jaxbindings.xml -keep -Xnocompile -p com.vmware.vim25 -s“src”vimService.wsdl
jaxbingdings.xml的内容是:
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"
jaxb:version="2.1"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxb:globalBindings
collectionType ="indexed"
generateIsSetMethod="false">
</jaxb:globalBindings>
</jaxb:bindings>
请注意,应该对collectionType建立索引。你也可以将它设置为你自己的定义列表,如com.my.List。