0

我正在使用以下类型来生成 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>

它会生成一个带有受保护的长删除的类;

但我想生成一个数组。添加 minOccurs="0" maxOccurs="unbounded" 生成一个列表。

请协助。

4

2 回答 2

0

如您所见: 整数数组的 WSDL 声明是什么?

<element name="ArrayOfLongs">
 <complexType>
  <sequence>
   <element maxOccurs="unbounded" name="remove" type="xsd:long"/>
  </sequence>
 </complexType>
</element>
于 2013-10-11T09:59:53.873 回答
0

您需要使用 jaxb 自定义绑定功能 -使用绑定声明自定义 XML 模式到 Java 映射
尝试使用以下命令:

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。

于 2017-08-03T16:24:38.543 回答