I had created a wsdl as shown below using zend framework
<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://soap.loc/index/soap" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="Example_Manager" targetNamespace="http://soap.loc/index/soap">
<types>
<xsd:schema targetNamespace="http://soap.loc/index/soap">
<xsd:element name="getProducts">
<xsd:complexType/>
</xsd:element>
<xsd:element name="getProductsResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getProductsResult" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getProductResult" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="addProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="data" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="addProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="addProductResult" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="deleteProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="deleteProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="deleteProductResult" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="updateProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="data" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="updateProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="updateProductResult" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<portType name="Example_ManagerPort">
<operation name="getProducts">
<documentation>Returns list of all products in database</documentation>
<input message="tns:getProductsIn"/>
<output message="tns:getProductsOut"/>
</operation>
<operation name="getProduct">
<documentation>Returns specified product in database</documentation>
<input message="tns:getProductIn"/>
<output message="tns:getProductOut"/>
</operation>
<operation name="addProduct">
<documentation>Adds new product to database</documentation>
<input message="tns:addProductIn"/>
<output message="tns:addProductOut"/>
</operation>
<operation name="deleteProduct">
<documentation>Deletes product from database</documentation>
<input message="tns:deleteProductIn"/>
<output message="tns:deleteProductOut"/>
</operation>
<operation name="updateProduct">
<documentation>Updates product in database</documentation>
<input message="tns:updateProductIn"/>
<output message="tns:updateProductOut"/>
</operation>
</portType>
<binding name="Example_ManagerBinding" type="tns:Example_ManagerPort">
<soap:binding style="document" transport="http://framework.zend.com"/>
<operation name="getProducts">
<soap:operation soapAction="http://soap.loc/index/soap#getProducts"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="getProduct">
<soap:operation soapAction="http://soap.loc/index/soap#getProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="addProduct">
<soap:operation soapAction="http://soap.loc/index/soap#addProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="deleteProduct">
<soap:operation soapAction="http://soap.loc/index/soap#deleteProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="updateProduct">
<soap:operation soapAction="http://soap.loc/index/soap#updateProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
</binding>
<service name="Example_ManagerService">
<port name="Example_ManagerPort" binding="tns:Example_ManagerBinding">
<soap:address location="http://soap.loc/index/soap"/>
</port>
</service>
<message name="getProductsIn">
<part name="parameters" element="tns:getProducts"/>
</message>
<message name="getProductsOut">
<part name="parameters" element="tns:getProductsResponse"/>
</message>
<message name="getProductIn">
<part name="parameters" element="tns:getProduct"/>
</message>
<message name="getProductOut">
<part name="parameters" element="tns:getProductResponse"/>
</message>
<message name="addProductIn">
<part name="parameters" element="tns:addProduct"/>
</message>
<message name="addProductOut">
<part name="parameters" element="tns:addProductResponse"/>
</message>
<message name="deleteProductIn">
<part name="parameters" element="tns:deleteProduct"/>
</message>
<message name="deleteProductOut">
<part name="parameters" element="tns:deleteProductResponse"/>
</message>
<message name="updateProductIn">
<part name="parameters" element="tns:updateProduct"/>
</message>
<message name="updateProductOut">
<part name="parameters" element="tns:updateProductResponse"/>
</message>
Now the problem is that when i load this in soapui, function names are not being displayed.
Earlier I had a working wsdl using NuSoap, which generated wsdl and could be loaded into SOAPUi and function names were being displayed.
New into web service business, It would be great to know if its wrong with the wsdl itself.
Banging my head on the monitor to get an answer ....... but only things i see is stars.
Sir, you have missed a tag in your wsdl. It's not correct.
Save your wsdl in form of xml and if you will open it in web browser, you will find the error.
Related
I am trying to (re)generate code again from a preexisting WSDL. I am not able to use wsimport as it is giving binding failed error. So I tried WSDL validator from CXF. It gives this error. Please see below for my WSDL.
WSDLValidator Error :
Summary: Failures: 1, Warnings: 0
<<< ERROR!
Part <scheduledJob> in Message <{http://webservices.jobs.batch.prompt.com/}ImmJobWSIF_getScheduledJobResponse> referenced Type <{http://webservices.jobs.batch.prompt.com/}ScheduledJob> can not be found in the schemas
Here is the WSDL. Inline schema looks good comparing to some online schemas. I have no clue.
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="ImmJobWS"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
targetNamespace="http://webservices.jobs.batch.prompt.com/"
xmlns:tns="http://webservices.jobs.batch.prompt.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<types>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://webservices.jobs.batch.prompt.com/"
xmlns="http://webservices.jobs.batch.prompt.com/">
<xsd:element name="ScheduledJob">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="jobId" type="xsd:int"/>
<xsd:element name="jobName" type="xsd:string"/>
<xsd:element name="jobCategoryName" type="xsd:string"/>
<xsd:element name="jobClassName" type="xsd:string"/>
<xsd:element name="jobStatus" type="xsd:string"/>
<xsd:element name="nextExecutionDate" type="xsd:dateTime"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<message name="ImmJobWSIF_getScheduledJob">
<part name="job_id" type="xsd:int"/>
<part name="user_ident" type="xsd:string"/>
</message>
<message name="ImmJobWSIF_getScheduledJobResponse">
<part name="scheduledJob" type="tns:ScheduledJob"/>
</message>
<message name="ImmJobWSIF_startSched">
<part name="user_ident" type="xsd:string"/>
</message>
<message name="ImmJobWSIF_startSchedResponse">
<part name="result" type="xsd:string"/>
</message>
<message name="ImmJobWSIF_stopSched">
<part name="user_ident" type="xsd:string"/>
</message>
<message name="ImmJobWSIF_stopSchedResponse">
<part name="result" type="xsd:string"/>
</message>
<portType name="ImmJobWSIF">
<operation name="getScheduledJob" parameterOrder="job_id user_ident">
<input message="tns:ImmJobWSIF_getScheduledJob"/>
<output message="tns:ImmJobWSIF_getScheduledJobResponse"/>
</operation>
<operation name="startSched" parameterOrder="user_ident">
<input message="tns:ImmJobWSIF_startSched"/>
<output message="tns:ImmJobWSIF_startSchedResponse"/>
</operation>
<operation name="stopSched" parameterOrder="user_ident">
<input message="tns:ImmJobWSIF_stopSched"/>
<output message="tns:ImmJobWSIF_stopSchedResponse"/>
</operation>
</portType>
<binding name="ImmJobWSIFBinding" type="tns:ImmJobWSIF">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="rpc" />
<operation name="getScheduledJob">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</input>
<output>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</output>
</operation>
<operation name="startSched">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</input>
<output>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</output>
</operation>
<operation name="stopSched">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</input>
<output>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</output>
</operation>
</binding>
<service name="ImmJobWS">
<port name="ImmJobWSIFPort" binding="tns:ImmJobWSIFBinding">
<soap:address location="http://vm-prover.maleri.com:8782/projImmJobs/ImmJobWS"/>
</port>
</service>
</definitions>
First Of All sorry about my bad English :D and Thanks for your help...
I have to write a Delphi web service with xsd schema and the wsdl similar to wsdl at the bottom. Is it possible with Delphi. I have to write a service according to the existing web service client, the wsdl at the bottom belongs to an php web service with nusoap library.
I seem to hear you write this web service with php nusoap, but as you know that Delphi web service can be standalone exe and I need it's ability for our product.
I can write this web service with php no problem, but if it is possible, I want to write this web service with Delphi as a standalone.
I could write this web service with Delphi as standalone.The problem is that WSDL. My service's WSDL have to similar with the WSDL at the bottom. Can I do my service's wsdl similar to wsdl at the bottom? If it is possible,how can I do?
I'm using Delphi XE4.
Thanks again.
<?xml version="1.0" encoding="windows-1252"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:wnposwsdl2" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:wnposwsdl2">
<types>
<xsd:schema targetNamespace="urn:wnposwsdl2">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
<xsd:complexType name="wnposreply">
<xsd:all>
<xsd:element name="rtype" type="xsd:string"/>
<xsd:element name="rid" type="xsd:string"/>
<xsd:element name="rval1" type="xsd:string"/>
<xsd:element name="rval2" type="xsd:string"/>
<xsd:element name="rmessage1" type="xsd:string"/>
<xsd:element name="rmessage2" type="xsd:string"/>
<xsd:element name="rmessage3" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="posregister">
<xsd:all>
<xsd:element name="serialno" type="xsd:string"/>
<xsd:element name="posid" type="xsd:string"/>
<xsd:element name="siteid" type="xsd:string"/>
<xsd:element name="sitename" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="customercard">
<xsd:all>
<xsd:element name="cctype" type="xsd:string"/>
<xsd:element name="customercode" type="xsd:string"/>
<xsd:element name="ccnumber" type="xsd:string"/>
<xsd:element name="validfrom" type="xsd:string"/>
<xsd:element name="validto" type="xsd:string"/>
<xsd:element name="pin" type="xsd:string"/>
<xsd:element name="ccstatus" type="xsd:string"/>
<xsd:element name="total_d" type="xsd:float"/>
<xsd:element name="total_c" type="xsd:float"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="customer">
<xsd:all>
<xsd:element name="code" type="xsd:string"/>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="address1" type="xsd:string"/>
<xsd:element name="address2" type="xsd:string"/>
<xsd:element name="county" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="zip" type="xsd:string"/>
<xsd:element name="tel" type="xsd:string"/>
<xsd:element name="gsm" type="xsd:string"/>
<xsd:element name="email" type="xsd:string"/>
<xsd:element name="web" type="xsd:string"/>
<xsd:element name="listprice" type="xsd:string"/>
<xsd:element name="defdiscount" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="payment">
<xsd:all>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="val" type="xsd:float"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ccard">
<xsd:all>
<xsd:element name="customercard" type="tns:customercard"/>
<xsd:element name="customer" type="tns:customer"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ccardarray">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:ccard[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="customertrans">
<xsd:all>
<xsd:element name="ccnumber" type="xsd:string"/>
<xsd:element name="posserialno" type="xsd:string"/>
<xsd:element name="ftransid" type="xsd:string"/>
<xsd:element name="ftype" type="xsd:string"/>
<xsd:element name="ftm" type="xsd:string"/>
<xsd:element name="fno" type="xsd:string"/>
<xsd:element name="excode" type="xsd:string"/>
<xsd:element name="genexp" type="xsd:string"/>
<xsd:element name="sign" type="xsd:string"/>
<xsd:element name="amount" type="xsd:float"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="customertransarray">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:customertrans[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="payments">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:payment[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="itemtrans">
<xsd:all>
<xsd:element name="ttype" type="xsd:string"/>
<xsd:element name="subtype" type="xsd:string"/>
<xsd:element name="code" type="xsd:string"/>
<xsd:element name="quantity" type="xsd:float"/>
<xsd:element name="bprice" type="xsd:float"/>
<xsd:element name="itemgroupcode" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="itemtransarray">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:itemtrans[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="receiptheader">
<xsd:all>
<xsd:element name="fno" type="xsd:string"/>
<xsd:element name="ftm" type="xsd:string"/>
<xsd:element name="siteid" type="xsd:string"/>
<xsd:element name="customercard" type="tns:customercard"/>
<xsd:element name="payments" type="tns:payments"/>
<xsd:element name="nettotal" type="xsd:float"/>
<xsd:element name="calculatedtotalpoint" type="xsd:float"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="receipt">
<xsd:all>
<xsd:element name="ftransid" type="xsd:int"/>
<xsd:element name="serialno" type="xsd:string"/>
<xsd:element name="ctranstype" type="xsd:string"/>
<xsd:element name="header" type="tns:receiptheader"/>
<xsd:element name="items" type="tns:itemtransarray"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="receiptarray">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:receipt[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="spendingcheck">
<xsd:all>
<xsd:element name="ctrans" type="tns:customertrans"/>
<xsd:element name="basket" type="tns:receipt"/>
</xsd:all>
</xsd:complexType>
</xsd:schema>
</types>
<message name="register_posRequest">
<part name="posrecord" type="tns:posregister"/></message>
<message name="register_posResponse">
<part name="return" type="tns:wnposreply"/></message>
<message name="query_cardRequest">
<part name="customercard" type="tns:customercard"/></message>
<message name="query_cardResponse">
<part name="return" type="tns:wnposreply"/></message>
<message name="register_customerRequest">
<part name="ccardarray" type="tns:ccardarray"/></message>
<message name="register_customerResponse">
<part name="return" type="tns:wnposreply"/></message>
<message name="check_receiptRequest">
<part name="receipt" type="tns:receiptarray"/></message>
<message name="check_receiptResponse">
<part name="return" type="tns:wnposreply"/></message>
<message name="add_ctransRequest">
<part name="customertrans" type="tns:customertrans"/></message>
<message name="add_ctransResponse">
<part name="return" type="tns:wnposreply"/></message>
<message name="update_ctransRequest">
<part name="customertrans" type="tns:customertrans"/></message>
<message name="update_ctransResponse">
<part name="return" type="tns:wnposreply"/></message>
<message name="add_spendingRequest">
<part name="spendingcheck" type="tns:spendingcheck"/></message>
<message name="add_spendingResponse">
<part name="return" type="tns:wnposreply"/></message>
<portType name="wnposwsdl2PortType">
<operation name="register_pos">
<documentation>Register pos...</documentation>
<input message="tns:register_posRequest"/>
<output message="tns:register_posResponse"/>
</operation>
<operation name="query_card">
<documentation>Query customer card...</documentation>
<input message="tns:query_cardRequest"/>
<output message="tns:query_cardResponse"/>
</operation>
<operation name="register_customer">
<documentation>Registers customer(s)/card(s)/giftcard(s) to be used by the server, approval required by the db manager....</documentation>
<input message="tns:register_customerRequest"/>
<output message="tns:register_customerResponse"/>
</operation>
<operation name="check_receipt">
<documentation>Check receipt for gift or point collection..</documentation>
<input message="tns:check_receiptRequest"/>
<output message="tns:check_receiptResponse"/>
</operation>
<operation name="add_ctrans">
<documentation>Add trans..</documentation>
<input message="tns:add_ctransRequest"/>
<output message="tns:add_ctransResponse"/>
</operation>
<operation name="update_ctrans">
<documentation>Update added trans change stage...</documentation>
<input message="tns:update_ctransRequest"/>
<output message="tns:update_ctransResponse"/>
</operation>
<operation name="add_spending">
<documentation>Add spending ..</documentation>
<input message="tns:add_spendingRequest"/>
<output message="tns:add_spendingResponse"/>
</operation>
</portType>
<binding name="wnposwsdl2Binding" type="tns:wnposwsdl2PortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="register_pos">
<soap:operation soapAction="urn:wnposwsdl2#register_pos" style="rpc"/>
<input><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
<operation name="query_card">
<soap:operation soapAction="urn:wnposwsdl2#query_card" style="rpc"/>
<input><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
<operation name="register_customer">
<soap:operation soapAction="urn:wnposwsdl2#register_customer" style="rpc"/>
<input><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
<operation name="check_receipt">
<soap:operation soapAction="urn:wnposwsdl2#check_receipt" style="rpc"/>
<input><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
<operation name="add_ctrans">
<soap:operation soapAction="urn:wnposwsdl2#customertrans" style="rpc"/>
<input><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
<operation name="update_ctrans">
<soap:operation soapAction="urn:wnposwsdl2#customertrans" style="rpc"/>
<input><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
<operation name="add_spending">
<soap:operation soapAction="urn:wnposwsdl2#spendingcheck" style="rpc"/>
<input><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
<output><soap:body use="encoded" namespace="urn:wnposwsdl2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
</operation>
</binding>
<service name="wnposwsdl2">
<port name="wnposwsdl2Port" binding="tns:wnposwsdl2Binding">
<soap:address location="http://ksistemdomain.com:88/web.biz/server/wnposserver.php"/>
</port>
</service>
</definitions>
Sure, you can use Delphi to write a SOAP Service out of your wsdl file.
then you can use the result dll to call your service.
you can check out this link for more info.
I'm trying run a contract-first by CXF and Maven.
I have a WSDL which is inside src/java/resource/wsdl and 5 xsds which are inside src/java/resources/xsd
My hierarchi seems like this:
aaa.v1r0.xsd (have an element which refers to bbb.v1r0.xsd)
bbb.v1r0.xsd (have elements which refers to ccc.v1r0.xsd, ddd.v1r0.xsd and eee.v1r0.xsd)
ccc.v1r0.xsd
ddd.v1r0.xsd (have an element which refers to eee.v1r0.xsd)
eee.v1r0.xsd
aaa.v1r0.wsdl have an element which refers to aaa.v1r0.xsd
aaa.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/aaa"
xmlns="http://schemas.example.com.br/aaa"
version="v1r0"
xmlns:bbb="http://schemas.example.com.br/bbb">
<xsd:import
namespace="http://schemas.example.com.br/bbb"
schemaLocation="bbb.v1r0.xsd"/>
<xsd:element name="aaa" type="Aaa"/>
<xsd:element name="aaas" type="Aaas"/>
<xsd:complexType name="Aaa">
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="bbb:bbbs" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Aaas">
<xsd:sequence>
<xsd:element ref="aaa" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
bbb.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/bbb"
xmlns="http://schemas.example.com.br/bbb"
version="v1r0"
xmlns:ccc="http://schemas.example.com.br/ccc"
xmlns:ddd="http://schemas.example.com.br/ddd"
xmlns:eee="http://schemas.example.com.br/eee">
<xsd:import
namespace="http://schemas.example.com.br/ccc"
schemaLocation="ccc.v1r0.xsd"/>
<xsd:import
namespace="http://schemas.example.com.br/ddd"
schemaLocation="ddd.v1r0.xsd"/>
<xsd:import
namespace="http://schemas.example.com.br/eee"
schemaLocation="eee.v1r0.xsd"/>
<xsd:element name="bbb" type="Bbb"/>
<xsd:element name="bbbs" type="Bbbs"/>
<xsd:complexType name="Bbb">
<xsd:sequence>
<xsd:element name="field1" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field3" type="xsd:base64Binary" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ccc:ccc" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field4" type="xsd:integer" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field5" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ddd:ddd" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field6" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="eee:eees" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Bbbs">
<xsd:sequence>
<xsd:element ref="bbb" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
ccc.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/ccc"
xmlns="http://schemas.example.com.br/ccc"
version="v1r0">
<xsd:element name="ccc" type="Ccc"/>
<xsd:complexType name="Ccc">
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field3" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:double" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:double" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
ddd.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/ddd"
xmlns="http://schemas.example.com.br/ddd"
version="v1r0"
xmlns:eee="http://schemas.example.com.br/eee">
<xsd:import
namespace="http://schemas.example.com.br/eee"
schemaLocation="eee.v1r0.xsd"/>
<xsd:element name="ddd" type="Ddd"/>
<xsd:element name="ddds" type="Ddds"/>
<xsd:complexType name="Ddd">
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:time" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="eee:eees" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Ddds">
<xsd:sequence>
<xsd:element ref="ddd" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
eee.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/eee"
xmlns="http://schemas.example.com.br/eee"
version="v1r0">
<xsd:element name="eee" type="Eee"/>
<xsd:element name="eees" type="Eees"/>
<xsd:complexType name="Eee">
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field3" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field4" type="xsd:integer" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field5" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Eees">
<xsd:sequence>
<xsd:element ref="eee" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
aaa.v1r0.wsdl
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions
name="evento.v1r0"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="http://services.example.com.br/aaa"
xmlns:tns="http://services.example.com.br/aaa">
<wsdl:types>
<xsd:schema
elementFormDefault="qualified"
targetNamespace="http://services.example.com.br/aaa"
xmlns:aaa="http://schemas.example.com.br/aaa">
<xsd:import
namespace="http://schemas.example.com.br/aaa"
schemaLocation="../xsd/aaa.v1r0.xsd"/>
<xsd:element name="capacity01Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaa" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity01Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity02Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:date" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity02Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field02" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field03" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field04" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field05" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field06" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field07" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field08" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field09" type="xsd:base64Binary" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field10" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field11" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field12" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="field13" type="xsd:integer" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity03Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field02" type="xsd:date" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity03Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaas" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity04Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field02" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field03" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field04" type="xsd:date" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field05" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity04Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaas" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AaaError">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="requestcapacity01">
<wsdl:part name="capacity01Request" element="tns:capacity01Request"/>
</wsdl:message>
<wsdl:message name="responsecapacity01">
<wsdl:part name="capacity01Response" element="tns:capacity01Response"/>
</wsdl:message>
<wsdl:message name="requestcapacity02">
<wsdl:part name="capacity02Request" element="tns:capacity02Request"/>
</wsdl:message>
<wsdl:message name="responsecapacity02">
<wsdl:part name="capacity02Response" element="tns:capacity02Response"/>
</wsdl:message>
<wsdl:message name="requestcapacity03">
<wsdl:part name="capacity03Request" element="tns:capacity03Request"/>
</wsdl:message>
<wsdl:message name="responsecapacity03">
<wsdl:part name="capacity03Response" element="tns:capacity03Response"/>
</wsdl:message>
<wsdl:message name="requestcapacity04">
<wsdl:part name="capacity04Request" element="tns:capacity04Request"/>
</wsdl:message>
<wsdl:message name="responsecapacity04">
<wsdl:part name="capacity04Response" element="tns:capacity04Response"/>
</wsdl:message>
<wsdl:message name="AaaError">
<wsdl:part name="AaaError" element="tns:AaaError"/>
</wsdl:message>
<wsdl:portType name="eventoPortType">
<wsdl:operation name="capacity01">
<wsdl:input message="tns:requestcapacity01"/>
<wsdl:output message="tns:responsecapacity01"/>
<wsdl:fault name="error" message="tns:AaaError"/>
</wsdl:operation>
<wsdl:operation name="capacity02">
<wsdl:input message="tns:requestcapacity02"/>
<wsdl:output message="tns:responsecapacity02"/>
<wsdl:fault name="error" message="tns:AaaError"/>
</wsdl:operation>
<wsdl:operation name="capacity03">
<wsdl:input message="tns:requestcapacity03"/>
<wsdl:output message="tns:responsecapacity03"/>
<wsdl:fault name="error" message="tns:AaaError"/>
</wsdl:operation>
<wsdl:operation name="capacity04">
<wsdl:input message="tns:requestcapacity04"/>
<wsdl:output message="tns:responsecapacity04"/>
<wsdl:fault name="error" message="tns:AaaError"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="eventoSOAP11Binding" type="tns:eventoPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="capacity01">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity02">
<soap:operation style="document" soapAction=""/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity03">
<soap:operation style="document" soapAction=""/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity04">
<soap:operation style="document" soapAction=""/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="aaaService">
<wsdl:port name="AaaPort" binding="tns:eventoSOAP11Binding">
<soap:address location="http://localhost:8080/aaa-service/services/aaa"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.exampleapp</groupId>
<artifactId>aaa-service</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>aaa-service Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<cxf.version>3.0.1</cxf.version>
<jdk.version>1.7</jdk.version>
<maven-compiler.version>3.1</maven-compiler.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring.version>4.0.6.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
<build>
<finalName>aaa-service</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler.version}</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding></encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${basedir}/src/main/java</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/aaa.v1r0.wsdl</wsdl>
<extraargs>
<extraarg>-impl</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<jaxws:endpoint
id="aaa"
implementor="br.com.example.services.aaa.AaaPortImpl"
wsdlLocation="wsdl/aaa.v1r0.wsdl"
address="/aaa">
</jaxws:endpoint>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee /web-app_2_5.xsd">
<display-name>Sample web service provider</display-name>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
</web-app>
When I run my project in a Tomcat server, I can access the WSDL configuration through http://localhost:8080/aaa-service/services/aaa?wsdl
However, when I try test this configuration through SOAPUI, I receive a message which say that was an error loading WSDL
Source null
Error element bbbs#http://schemas.example.com.br/bbb not found
What am I doing wrong? is there some configuration to ref elements?
Add the import statement to import other xsd to wsdl
<xsd:import namespace="http://schemas.example.com.br/bbb" schemaLocation="../xsd/bbb.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/ccc" schemaLocation="../xsd/ccc.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/ddd" schemaLocation="../xsd/ddd.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/eee" schemaLocation="../xsd/eee.v1r0.xsd" />
Your wsdl would look like as below
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions name="evento.v1r0" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://services.example.com.br/aaa" xmlns:tns="http://services.example.com.br/aaa">
<wsdl:types>
<xsd:schema elementFormDefault="qualified" targetNamespace="http://services.example.com.br/aaa" xmlns:aaa="http://schemas.example.com.br/aaa">
<xsd:import namespace="http://schemas.example.com.br/aaa" schemaLocation="../xsd/aaa.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/bbb" schemaLocation="../xsd/bbb.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/ccc" schemaLocation="../xsd/ccc.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/ddd" schemaLocation="../xsd/ddd.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/eee" schemaLocation="../xsd/eee.v1r0.xsd" />
<xsd:element name="capacity01Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaa" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity01Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:integer" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity02Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="field2" type="xsd:date" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity02Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field02" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field03" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field04" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field05" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field06" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field07" type="xsd:dateTime" minOccurs="1" maxOccurs="1" />
<xsd:element name="field08" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field09" type="xsd:base64Binary" minOccurs="0" maxOccurs="1" />
<xsd:element name="field10" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field11" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field12" type="xsd:string" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="field13" type="xsd:integer" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity03Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="field02" type="xsd:date" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity03Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaas" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity04Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field02" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="field03" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field04" type="xsd:date" minOccurs="0" maxOccurs="1" />
<xsd:element name="field05" type="xsd:string" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity04Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaas" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AaaError">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="requestcapacity01">
<wsdl:part name="capacity01Request" element="tns:capacity01Request" />
</wsdl:message>
<wsdl:message name="responsecapacity01">
<wsdl:part name="capacity01Response" element="tns:capacity01Response" />
</wsdl:message>
<wsdl:message name="requestcapacity02">
<wsdl:part name="capacity02Request" element="tns:capacity02Request" />
</wsdl:message>
<wsdl:message name="responsecapacity02">
<wsdl:part name="capacity02Response" element="tns:capacity02Response" />
</wsdl:message>
<wsdl:message name="requestcapacity03">
<wsdl:part name="capacity03Request" element="tns:capacity03Request" />
</wsdl:message>
<wsdl:message name="responsecapacity03">
<wsdl:part name="capacity03Response" element="tns:capacity03Response" />
</wsdl:message>
<wsdl:message name="requestcapacity04">
<wsdl:part name="capacity04Request" element="tns:capacity04Request" />
</wsdl:message>
<wsdl:message name="responsecapacity04">
<wsdl:part name="capacity04Response" element="tns:capacity04Response" />
</wsdl:message>
<wsdl:message name="AaaError">
<wsdl:part name="AaaError" element="tns:AaaError" />
</wsdl:message>
<wsdl:portType name="eventoPortType">
<wsdl:operation name="capacity01">
<wsdl:input message="tns:requestcapacity01" />
<wsdl:output message="tns:responsecapacity01" />
<wsdl:fault name="error" message="tns:AaaError" />
</wsdl:operation>
<wsdl:operation name="capacity02">
<wsdl:input message="tns:requestcapacity02" />
<wsdl:output message="tns:responsecapacity02" />
<wsdl:fault name="error" message="tns:AaaError" />
</wsdl:operation>
<wsdl:operation name="capacity03">
<wsdl:input message="tns:requestcapacity03" />
<wsdl:output message="tns:responsecapacity03" />
<wsdl:fault name="error" message="tns:AaaError" />
</wsdl:operation>
<wsdl:operation name="capacity04">
<wsdl:input message="tns:requestcapacity04" />
<wsdl:output message="tns:responsecapacity04" />
<wsdl:fault name="error" message="tns:AaaError" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="eventoSOAP11Binding" type="tns:eventoPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="capacity01">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity02">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity03">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity04">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="aaaService">
<wsdl:port name="AaaPort" binding="tns:eventoSOAP11Binding">
<soap:address location="http://localhost:8080/aaa-service/services/aaa" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Hi I created a web service, and I've been testing it with SoapUI successfully.
But whenever I try to generate the client in Rational Application Developer, Visual Studio or even in SoapUI I keep getting the following error:
Using AXIS2_HOME: C:\Download\Axis2\axis2-1.4.1-bin\axis2-1.4.1
Using JAVA_HOME: C:\j2sdk1.4.2_04
org.apache.axis2.wsdl.codegen.CodeGenerationException: org.apache.axis2.wsdlUnmatchedTypeException: No type was mapped to the name ContractInfo with namespace http://service.invcontractinfo.ws.uig.com/
at ...
My WSDL is the following:
<?xml version="1.0"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://wpf.ibm.com/2002/03/models/InvContractInfoWS" xmlns:xsd1="http://service.invcontractinfo.ws.uig.com/" xmlns:xsd2="InvContractInfoWS/sql_GetOwnerInfo/sql_GetOwnerInfoInputs" xmlns:xsd3="InvContractInfoWS/sql_getContractInfo/sql_getContractInfoInputs" xmlns:xsd4="InvContractInfoWS/sql_getDeathBenefits/sql_getDeathBenefitsInputs" xmlns:xsd5="http://Services/Investment_Services/sql_getLastValidDate" xmlns:xsd6="http://generatedschema.bowstreet.com/InvContractInfoWS/GetLastValidDateInputSchema" xmlns:xsd7="http://Services/Investment_Services/sql_getProductType" xmlns:xsd8="InvContractInfoWS/sql_getProductType/sql_getProductTypeInputs" xmlns:xsd9="InvContractInfoWS/sql_getBalanceVariantInfo/sql_getBalanceVariantInfoInputs" xmlns:xsd10="InvContractInfoWS/sql_getBalanceNonVariantInfo/sql_getBalanceNonVariantInfoInputs" xmlns:xsd11="InvContractInfoWS/sql_getTransHistVariant/sql_getTransHistVariantInputs" xmlns:xsd12="InvContractInfoWS/sql_getTransHistNonVariant/sql_getTransHistNonVariantInputs" xmlns:xsd13="http://Services/Investment_Services/sql_getProdList" xmlns:xsd14="InvContractInfoWS/Inv_/InvContractInfoWSGetProductListReservedMethodDispatcher" xmlns:xsd15="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataInputSchema" xmlns:xsd16="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataOnLastValidDateInputSchema" name="InvContractInfoWS" targetNamespace="http://wpf.ibm.com/2002/03/models/InvContractInfoWS"><wsdl:types><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://service.invcontractinfo.ws.uig.com/" targetNamespace="http://service.invcontractinfo.ws.uig.com/"><xsd:element name="InvestmentContractInputs"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" ref="tns:CONTRACT_NUM" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:complexType name="OwnerInfoType"><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="CONT" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="POL_NUM" nillable="false" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="OWNER" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ADDR1" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ADDR2" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ADDR3" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="SOCSEC" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="DOB" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ANNUITANT" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContractInfoType"><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="CONT_NUMBER" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="POLICY_NUMBER" nillable="false" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="AGENCY" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="EFF_DATE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="EXP_DATE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="POL_TYPE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="PRODUCER" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="WRT_PREMIUM" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="POLSTATUS" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ISSUEDATE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="PRODNAME" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="QUALPLAN" nillable="false" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DeathBenefitsType"><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="CV_CASHVALUE" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CV_ACCOUNTVAL" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CV_DEATHBEN" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CV_DEATHBEN_ANNIVERSARY" nillable="true" type="xsd:decimal" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BalanceInfoRowSetType"><xsd:sequence><xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:BalanceInfoRow" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="BalanceInfoRow"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="CQ_UNITS" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CQ_UNIT_VAL" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CQ_INV_VAL" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="AD_DIV_NAME" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="TransactionHistoryRowSetType"><xsd:sequence><xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:TransactionHistoryRow" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="TransactionHistoryRow"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="TXN_DATE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="PY_TXN_TYPE_DESC" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="TD_TXN_DET_AMT" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="TD_INT_RATE" nillable="true" type="xsd:decimal" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="InvestmentContractResults" type="tns:InvestmentContractResultsType" />
<xsd:complexType name="InvestmentContractResultsType"><xsd:sequence><xsd:element maxOccurs="1" minOccurs="0" name="OwnerInfo" type="tns:OwnerInfoType" />
<xsd:element maxOccurs="1" minOccurs="0" name="ContractInfo" type="tns:ContractInfoType" />
<xsd:element maxOccurs="1" minOccurs="0" name="DeathBenefits" type="tns:DeathBenefitsType" />
<xsd:element maxOccurs="1" minOccurs="0" name="BalanceInfo" type="tns:BalanceInfoRowSetType" />
<xsd:element maxOccurs="1" minOccurs="0" name="TransactionHistory" type="tns:TransactionHistoryRowSetType" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MultiInvestmentContractRowSetType"><xsd:sequence><xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:InvestmentContractResultsRow" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="InvestmentContractResultsRow"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="0" name="OwnerInfo" type="tns:OwnerInfoType" />
<xsd:element maxOccurs="1" minOccurs="0" name="ContractInfo" type="tns:ContractInfoType" />
<xsd:element maxOccurs="1" minOccurs="0" name="DeathBenefits" type="tns:DeathBenefitsType" />
<xsd:element maxOccurs="1" minOccurs="0" name="BalanceInfo" type="tns:BalanceInfoRowSetType" />
<xsd:element maxOccurs="1" minOccurs="0" name="TransactionHistory" type="tns:TransactionHistoryRowSetType" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_GetOwnerInfo/sql_GetOwnerInfoInputs" targetNamespace="InvContractInfoWS/sql_GetOwnerInfo/sql_GetOwnerInfoInputs"><xsd:element name="sql_GetOwnerInfoInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getContractInfo/sql_getContractInfoInputs" targetNamespace="InvContractInfoWS/sql_getContractInfo/sql_getContractInfoInputs"><xsd:element name="sql_getContractInfoInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getDeathBenefits/sql_getDeathBenefitsInputs" targetNamespace="InvContractInfoWS/sql_getDeathBenefits/sql_getDeathBenefitsInputs"><xsd:element name="sql_getDeathBenefitsInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
<xsd:element ref="tns:VAL_DATE" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:element name="VAL_DATE" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cns="http://Services/Investment_Services/sql_getLastValidDate" targetNamespace="http://Services/Investment_Services/sql_getLastValidDate" elementFormDefault="qualified" attributeFormDefault="unqualified"><xsd:annotation><xsd:documentation xml:lang="en">Schema automatically generated on "Tuesday, December 7, 2010 2:56:31 PM VET" from the content of XML Variable "getSchema_TransformXml"</xsd:documentation>
</xsd:annotation>
<xsd:element name="RowSet" type="cns:RowSetType" />
<xsd:complexType name="RowSetType"><xsd:sequence><xsd:element ref="cns:Row" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Row"><xsd:complexType><xsd:sequence><xsd:element name="CV_VALDATE" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://generatedschema.bowstreet.com/InvContractInfoWS/GetLastValidDateInputSchema" targetNamespace="http://generatedschema.bowstreet.com/InvContractInfoWS/GetLastValidDateInputSchema"><xsd:element name="arguments"><xsd:complexType><xsd:sequence><xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cns="http://Services/Investment_Services/sql_getProductType" targetNamespace="http://Services/Investment_Services/sql_getProductType" elementFormDefault="qualified" attributeFormDefault="unqualified"><xsd:annotation><xsd:documentation xml:lang="en">Schema automatically generated on "Monday, December 6, 2010 4:38:48 PM VET" from the content of XML Variable "getSchema_TransformXml"</xsd:documentation>
</xsd:annotation>
<xsd:element name="RowSet" type="cns:RowSetType" />
<xsd:complexType name="RowSetType"><xsd:sequence><xsd:element ref="cns:Row" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Row"><xsd:complexType><xsd:sequence><xsd:element name="PROD_TYPE" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getProductType/sql_getProductTypeInputs" targetNamespace="InvContractInfoWS/sql_getProductType/sql_getProductTypeInputs"><xsd:element name="sql_getProductTypeInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTARCT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTARCT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getBalanceVariantInfo/sql_getBalanceVariantInfoInputs" targetNamespace="InvContractInfoWS/sql_getBalanceVariantInfo/sql_getBalanceVariantInfoInputs"><xsd:element name="sql_getBalanceVariantInfoInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
<xsd:element ref="tns:VAL_DATE" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:element name="VAL_DATE" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getBalanceNonVariantInfo/sql_getBalanceNonVariantInfoInputs" targetNamespace="InvContractInfoWS/sql_getBalanceNonVariantInfo/sql_getBalanceNonVariantInfoInputs"><xsd:element name="sql_getBalanceNonVariantInfoInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
<xsd:element ref="tns:VAL_DATE" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:element name="VAL_DATE" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getTransHistVariant/sql_getTransHistVariantInputs" targetNamespace="InvContractInfoWS/sql_getTransHistVariant/sql_getTransHistVariantInputs"><xsd:element name="sql_getTransHistVariantInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getTransHistNonVariant/sql_getTransHistNonVariantInputs" targetNamespace="InvContractInfoWS/sql_getTransHistNonVariant/sql_getTransHistNonVariantInputs"><xsd:element name="sql_getTransHistNonVariantInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cns="http://Services/Investment_Services/sql_getProdList" targetNamespace="http://Services/Investment_Services/sql_getProdList" elementFormDefault="qualified" attributeFormDefault="unqualified"><xsd:annotation><xsd:documentation xml:lang="en">Schema automatically generated on "Monday, December 6, 2010 4:57:00 PM VET" from the content of XML Variable "getSchema_TransformXml"</xsd:documentation>
</xsd:annotation>
<xsd:element name="RowSet" type="cns:RowSetType" />
<xsd:complexType name="RowSetType"><xsd:sequence><xsd:element ref="cns:Row" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Row"><xsd:complexType><xsd:sequence><xsd:element name="POL_TYPE_VAL" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true" />
<xsd:element name="POL_TYPE_ID" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/Inv_/InvContractInfoWSGetProductListReservedMethodDispatcher" targetNamespace="InvContractInfoWS/Inv_/InvContractInfoWSGetProductListReservedMethodDispatcher"><xsd:element name="reservedMethodDispatcher" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataInputSchema" targetNamespace="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataInputSchema"><xsd:element name="arguments"><xsd:complexType><xsd:sequence><xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:element name="VAL_DATE" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataOnLastValidDateInputSchema" targetNamespace="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataOnLastValidDateInputSchema"><xsd:element name="arguments"><xsd:complexType><xsd:sequence><xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="GetOwnerInfoResponse"><wsdl:part name="returnGetOwnerInfoResults" element="xsd1:OwnerInfo" />
</wsdl:message>
<wsdl:message name="GetOwnerInfoRequest"><wsdl:part name="sql_GetOwnerInfoInputs" element="xsd2:sql_GetOwnerInfoInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetContractInfoResponse"><wsdl:part name="returnGetContractInfoResults" element="xsd1:ContractInfo" />
</wsdl:message>
<wsdl:message name="GetContractInfoRequest"><wsdl:part name="sql_getContractInfoInputs" element="xsd3:sql_getContractInfoInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetDeathBenefitsResponse"><wsdl:part name="returnGetDeathBenefitsResults" element="xsd1:DeathBenefits" />
</wsdl:message>
<wsdl:message name="GetDeathBenefitsRequest"><wsdl:part name="sql_getDeathBenefitsInputs" element="xsd4:sql_getDeathBenefitsInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetLastValidDateResponse"><wsdl:part name="returnGetLastValidDateResults" element="xsd5:RowSet" />
</wsdl:message>
<wsdl:message name="GetLastValidDateRequest"><wsdl:part name="arguments" element="xsd6:arguments"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetProductTypeResponse"><wsdl:part name="returnGetProductTypeResults" element="xsd7:RowSet" />
</wsdl:message>
<wsdl:message name="GetProductTypeRequest"><wsdl:part name="sql_getProductTypeInputs" element="xsd8:sql_getProductTypeInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetVariantBalanceResponse"><wsdl:part name="returnGetVariantBalanceResults" element="xsd1:BalanceInfo" />
</wsdl:message>
<wsdl:message name="GetVariantBalanceRequest"><wsdl:part name="sql_getBalanceVariantInfoInputs" element="xsd9:sql_getBalanceVariantInfoInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetNonVariantBalanceResponse"><wsdl:part name="returnGetNonVariantBalanceResults" element="xsd1:BalanceInfo" />
</wsdl:message>
<wsdl:message name="GetNonVariantBalanceRequest"><wsdl:part name="sql_getBalanceNonVariantInfoInputs" element="xsd10:sql_getBalanceNonVariantInfoInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetVariantTransactionHistoryResponse"><wsdl:part name="returnGetVariantTransactionHistoryResults" element="xsd1:TransactionHistory" />
</wsdl:message>
<wsdl:message name="GetVariantTransactionHistoryRequest"><wsdl:part name="sql_getTransHistVariantInputs" element="xsd11:sql_getTransHistVariantInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetNonVariantTransactionHistoryResponse"><wsdl:part name="returnGetNonVariantTransactionHistoryResults" element="xsd1:TransactionHistory" />
</wsdl:message>
<wsdl:message name="GetNonVariantTransactionHistoryRequest"><wsdl:part name="sql_getTransHistNonVariantInputs" element="xsd12:sql_getTransHistNonVariantInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetProductListResponse"><wsdl:part name="returnGetProductListResults" element="xsd13:RowSet" />
</wsdl:message>
<wsdl:message name="GetProductListRequest"><wsdl:part name="reservedMethodDispatcher" element="xsd14:reservedMethodDispatcher"><wsdl:documentation>This is a dummy XML input used to support document/literal SOAP encoding for services that have no inputs.</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetAllContractDataResponse"><wsdl:part name="returnGetAllContractDataResults" element="xsd1:InvestmentContractResults" />
</wsdl:message>
<wsdl:message name="GetAllContractDataRequest"><wsdl:part name="arguments" element="xsd15:arguments"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetAllContractDataOnLastValidDateResponse"><wsdl:part name="returnGetAllContractDataOnLastValidDateResults" element="xsd1:InvestmentContractResults" />
</wsdl:message>
<wsdl:message name="GetAllContractDataOnLastValidDateRequest"><wsdl:part name="arguments" element="xsd16:arguments"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:portType name="InvContractInfoWSDOCPortType"><wsdl:operation name="GetOwnerInfo"><wsdl:input message="tns:GetOwnerInfoRequest" name="GetOwnerInfoRequest" />
<wsdl:output message="tns:GetOwnerInfoResponse" name="GetOwnerInfoResponse" />
</wsdl:operation>
<wsdl:operation name="GetContractInfo"><wsdl:input message="tns:GetContractInfoRequest" name="GetContractInfoRequest" />
<wsdl:output message="tns:GetContractInfoResponse" name="GetContractInfoResponse" />
</wsdl:operation>
<wsdl:operation name="GetDeathBenefits"><wsdl:input message="tns:GetDeathBenefitsRequest" name="GetDeathBenefitsRequest" />
<wsdl:output message="tns:GetDeathBenefitsResponse" name="GetDeathBenefitsResponse" />
</wsdl:operation>
<wsdl:operation name="GetLastValidDate"><wsdl:input message="tns:GetLastValidDateRequest" name="GetLastValidDateRequest" />
<wsdl:output message="tns:GetLastValidDateResponse" name="GetLastValidDateResponse" />
</wsdl:operation>
<wsdl:operation name="GetProductType"><wsdl:input message="tns:GetProductTypeRequest" name="GetProductTypeRequest" />
<wsdl:output message="tns:GetProductTypeResponse" name="GetProductTypeResponse" />
</wsdl:operation>
<wsdl:operation name="GetVariantBalance"><wsdl:input message="tns:GetVariantBalanceRequest" name="GetVariantBalanceRequest" />
<wsdl:output message="tns:GetVariantBalanceResponse" name="GetVariantBalanceResponse" />
</wsdl:operation>
<wsdl:operation name="GetNonVariantBalance"><wsdl:input message="tns:GetNonVariantBalanceRequest" name="GetNonVariantBalanceRequest" />
<wsdl:output message="tns:GetNonVariantBalanceResponse" name="GetNonVariantBalanceResponse" />
</wsdl:operation>
<wsdl:operation name="GetVariantTransactionHistory"><wsdl:input message="tns:GetVariantTransactionHistoryRequest" name="GetVariantTransactionHistoryRequest" />
<wsdl:output message="tns:GetVariantTransactionHistoryResponse" name="GetVariantTransactionHistoryResponse" />
</wsdl:operation>
<wsdl:operation name="GetNonVariantTransactionHistory"><wsdl:input message="tns:GetNonVariantTransactionHistoryRequest" name="GetNonVariantTransactionHistoryRequest" />
<wsdl:output message="tns:GetNonVariantTransactionHistoryResponse" name="GetNonVariantTransactionHistoryResponse" />
</wsdl:operation>
<wsdl:operation name="GetProductList"><wsdl:input message="tns:GetProductListRequest" name="GetProductListRequest" />
<wsdl:output message="tns:GetProductListResponse" name="GetProductListResponse" />
</wsdl:operation>
<wsdl:operation name="GetAllContractData"><wsdl:input message="tns:GetAllContractDataRequest" name="GetAllContractDataRequest" />
<wsdl:output message="tns:GetAllContractDataResponse" name="GetAllContractDataResponse" />
</wsdl:operation>
<wsdl:operation name="GetAllContractDataOnLastValidDate"><wsdl:input message="tns:GetAllContractDataOnLastValidDateRequest" name="GetAllContractDataOnLastValidDateRequest" />
<wsdl:output message="tns:GetAllContractDataOnLastValidDateResponse" name="GetAllContractDataOnLastValidDateResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="InvContractInfoWSDOCBinding" type="tns:InvContractInfoWSDOCPortType"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="GetOwnerInfo"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetContractInfo"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetDeathBenefits"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetLastValidDate"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetProductType"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetVariantBalance"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetNonVariantBalance"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetVariantTransactionHistory"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetNonVariantTransactionHistory"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetProductList"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetAllContractData"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetAllContractDataOnLastValidDate"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="InvContractInfoWS"><wsdl:port name="InvContractInfoWSSOAPDocument" binding="tns:InvContractInfoWSDOCBinding"><soap:address location="http://vmwprocsrvt:9081/UnivInvContractWS/servlet/AxisServlet" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
For reference this web service was created in WebSphere Portlet Factory.
This WSDL is not valid. At the very least:
File Untitled8.wsdl is not valid.
File Untitled8.wsdl is not valid.
attribute 'element' in message part 'returnGetOwnerInfoResults'
(message 'GetOwnerInfoResponse')
refers to element 'xsd1:OwnerInfo'
which is not defined within the WSDL
file!
Error location: wsdl:definitions / wsdl:message /
wsdl:part / #element
This refers to
<wsdl:message name="GetOwnerInfoResponse">
<wsdl:part name="returnGetOwnerInfoResults" element="xsd1:OwnerInfo"/>
</wsdl:message>
I have a server (SoapUI) answering requests for a WSDL.
When sending test requests, my server code is receiving a list of arguments, but I'm trying to achieve is a single argument, of complex type, eg:
{
ingredient_id => INT
something => STRING
...
}
My types are as follow:
<wsdl:types>
<xsd:schema targetNamespace="/ingredient">
<xsd:element name="getIngredientInfo" type="tns:IngredientRequest"></xsd:element>
<xsd:element name="getIngredientInfoResponse" type="tns:ingredient"></xsd:element>
<xsd:complexType name="ingredient">
<xsd:sequence>
<xsd:element name="ingredient_id" type="xsd:int" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="ingredient_name" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_gm" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_vegan" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_vegetarian" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="author_id" type="xsd:int" block="#all" minOccurs="1" maxOccurs="1"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IngredientRequest">
<xsd:sequence>
<xsd:element name="ingredient_id" type="xsd:int"></xsd:element>
<xsd:element name="something" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
Can somebody help me to understand why WSDL is making SoapUI send the arguments as a list of simple arguments, instead of a single complex argument?
EDIT: It might be some problem with sequence tag, but I can't find the issue in that, just need some light.
Thanks in advance!
Sure, I have it right here:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions
name="ingredient"
targetNamespace="/ingredient"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="/ingredient"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema targetNamespace="/ingredient">
<xsd:element name="getIngredientInfo" type="tns:IngredientRequest"></xsd:element>
<xsd:element name="getIngredientInfoResponse" type="tns:ingredient"></xsd:element>
<xsd:complexType name="ingredient">
<xsd:sequence>
<xsd:element name="ingredient_id" type="xsd:int" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="ingredient_name" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_gm" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_vegan" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_vegetarian" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="author_id" type="xsd:int" block="#all" minOccurs="1" maxOccurs="1"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IngredientRequest">
<xsd:sequence>
<xsd:element name="ingredient_id" type="xsd:int"></xsd:element>
<xsd:element name="something" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="getIngredientInfoRequest">
<wsdl:part element="tns:getIngredientInfo" name="parameters"/>
</wsdl:message>
<wsdl:message name="getIngredientInfoResponse">
<wsdl:part element="tns:getIngredientInfoResponse"
name="parameters" />
</wsdl:message>
<wsdl:portType name="ingredient">
<wsdl:operation name="getIngredientInfo">
<wsdl:input message="tns:getIngredientInfoRequest"/>
<wsdl:output message="tns:getIngredientInfoResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ingredientSOAP" type="tns:ingredient">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getIngredientInfo">
<soap:operation
soapAction="http://entropy.homelinux.org/kasak/" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ingredient">
<wsdl:port binding="tns:ingredientSOAP" name="ingredientSOAP">
<soap:address location="http://entropy.homelinux.org/kasak/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Still have no hints on it :(
You need to write your WSDL in "Document/literal wrapped"-style. These WSDL-styles are a bit confusing but here is a good comparison.
In essence you will need to wrap your complexType into an element:
<element name="IngredientInfo">
<complexType>
<sequence>
<element name="ingredient_id" type="xsd:int"></xsd:element>
<element name="something" type="xsd:string"></xsd:element>
</sequence>
</complexType>
</element>
and specify this element to be send as message
<message name="getIngredientInfoRequest">
<part name="parameters" element="IngredientInfo"/>
</message>
Thus the resulting SOAP message contains this the IngredientInfo-element as the only child of the SOAP body:
<soap:envelope>
<soap:body>
<IngredientInfo>
<ingredient_id>42</ingredient_id>
<something>"What is..."</something>
</IngredientInfo>
</soap:body>
</soap:envelope>
I don't think WSDL Type (IngredientRequest) is the issue, can you show the complete WSDL, especially the operation which you are testing if that's accepting a array of IngredientRequest type then that is the answer, why SOAP UI is sending a list of arguments.
Ok after using your WSDL for generating a sample request using my SOAP UI here is what I see
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ing="/ingredient">
<soapenv:Header/>
<soapenv:Body>
<ing:getIngredientInfo>
<ingredient_id>?</ingredient_id>
<something>?</something>
</ing:getIngredientInfo>
</soapenv:Body>
</soapenv:Envelope>
So as seen its creating a single getIngredientInfo request object no arrays. Please confirm, try using latest version of SOAP UI if required!
My understanding is that you currently have something like the following (I'm doing a web service call in Java, so I'll example in it):
SOAPCaller.getIngredientInformation(3, "something");
However, what you'd really like is the following:
IngredientRequest ingredientRequest = new IngredientRequest(3, "something");
SOAPCaller.getIngredientInformation(ingredientRequest);
Trying something like what Wierob suggested caused the first case to be what was generated for me. Unfortunately, the only way that I found to achieve the second is to do extra encapsulation which is messy (extra classes are generated). Yet, it allows a single object to be sent and a single object to be returned, rather than a number of objects. Here's an example:
<!-- assume the including of your complex types from above -->
<xsd:element name="getIngredientInfo" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ingredient" type="tns:IngredientRequest" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getIngredientInfoResponse" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ingredientResponse" type="tns:ingredient" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>