2013-10-11 48 views
0

我使用以下類型生成web服務響應類:如何從wsdl生成long數組?

 <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」生成一個List。

請協助。

+0

如果你得到名單,考慮 http://stackoverflow.com/questions/9572795/convert-list-to-array-in-java –

回答

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> 
+0

這將生成的列表,而不是長期的多頭排列。 – scugxl

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這樣的自定義列表。