1) Change the AccountSummaries element name to AccountSummariesResponse. 

2) Create a new AccountSummaries element that is a empty sequence complexType.

3) Change the AccountSummariesRequest message to contain a single part that 
points at that new element.


Dan



On Monday 05 April 2010 12:53:47 am Naresh Bhatia wrote:
> I am trying to write an operation in WSDL that returns a list. Essentially,
> I want wsdl2java to generate the following method for me:
> 
>     public List<AccountSummary> getAccountSummaries();
> 
> How do I do this? I tried different things, but I always end up with
> wsdl2java creating a wrapper over the list and returning this wrapper,
> e.g.
> 
>     public AccountSummaries getAccountSummaries();
> 
> where AccountSummaries wraps a List<AccountSummary>.
> 
> Here's my WSDL. Can someone show me how to change it so that the
> getAccountSummaries() method returns an unwrapped list?
> 
> <definitions
>     targetNamespace="http://myapp.org/account.wsdl";
>     xmlns="http://schemas.xmlsoap.org/wsdl/";
>     xmlns:acnt="http://myapp.org/account.xsd";
>     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>     xmlns:tns="http://myapp.org/account.wsdl";>
> 
>     <types>
>         <xsd:schema
>             targetNamespace="http://myapp.org/account.xsd";
>             elementFormDefault="qualified"
>             xmlns:tns="http://myapp.org/account.xsd";
>             xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
> 
>             <xsd:element name="AccountSummaries"
> type="tns:AccountSummaries" />
> 
>             <xsd:complexType name="AccountSummaries">
>                 <xsd:sequence>
>                     <xsd:element name="AccountSummary"
> type="tns:AccountSummary" minOccurs="0" maxOccurs="unbounded" />
>                 </xsd:sequence>
>             </xsd:complexType>
> 
>             <xsd:complexType name="AccountSummary">
>                 <xsd:sequence>
>                     <xsd:element name="id" type="xsd:long" />
>                     <xsd:element name="cash" type="xsd:decimal" />
>                 </xsd:sequence>
>             </xsd:complexType>
> 
>         </xsd:schema>
>     </types>
> 
>     <message name="AccountSummariesRequest" />
> 
>     <message name="AccountSummariesResponse">
>         <part name="AccountSummaries" element="acnt:AccountSummaries" />
>     </message>
> 
>     <portType name="AccountProvider">
>         <operation name="GetAccountSummaries">
>             <input message="tns:AccountSummariesRequest" />
>             <output message="tns:AccountSummariesResponse" />
>         </operation>
>     </portType>
> 
>     <binding name="AccountBinding" type="tns:AccountProvider">
>         <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"; /> <operation
> name="GetAccountSummaries">
>             <soap:operation soapAction="GetAccountSummaries" />
>             <input>
>                 <soap:body use="literal" />
>             </input>
>             <output>
>                 <soap:body use="literal" />
>             </output>
>         </operation>
>     </binding>
> 
>     <service name="AccountService">
>         <port name="AccountPort" binding="tns:AccountBinding">
>             <soap:address
> location="http://localhost:8080/myapp/services/account"; /> </port>
>     </service>
> 
> </definitions>
> 
> 
> Thanks.
> Naresh

-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog

Reply via email to