P
Philluminati
Hi guys. I'm trying to write a SOAP server in Perl and it seems I need
to handwrite the WSDL files. The good news is, I've already done some
samples and have it working but I'm trying to grow these samples into
something more complex and I'm having a little difficulty.
I have a SOAP Service, with a function which returns an array of type
"TreeObject". The hope is that the client can then invoke functions,
specifically on that instance of a TreeObject, such as "getId",
"getName", etc and what ever else I fancy but I'm having difficulties
writing a WSDL fileto do this.
This is basically what I have written so far:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="Customer"
targetNamespace="http://wwwpreview.#deleted#.co.uk/~ptaylor/
Customer.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://wwwpreview.#deleted#.co.uk/~ptaylor/Customer.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<message name="StringParam">
<part name="retval" type="xsd:string" />
</message>
<message name="void">
</message>
<message name="getCustomersRetval">
<part name="retval" type="xsd:string" />
</message>
<portType name="customer_port_type">
<operation name="getCustomers">
<input message="tns:void" />
<output message="tns:getCustomersRetval" />
</operation>
</portType>
<binding name="customer_binding" type="tns:customer_port_type">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/
http" />
<operation name="getCustomers">
<soapperation soapAction="urn:Customer#getCustomers" />
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:Customer"
use="encoded" />
</input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:Customer"
use="encoded" />
</output>
</operation>
</binding>
<service name="CustomerService">
<documentation>Service provides access to and from server side
customer functions</documentation>
<port binding="tns:customer_binding" name="customer_port">
<soap:address
location="http://wwwpreview.#deleted#.co.uk/cgi-bin/poc/
Customer.cgi" />
</port>
</service>
</definitions>
but I would like to say that getCustomers returns an array of
"TreeObject", and that a TreeObject has functions such as getId,
getName, setId, setName etc. (It currently returns a string)
I'd really appreciate any help I can get.
Thank you
Phillip Taylor
to handwrite the WSDL files. The good news is, I've already done some
samples and have it working but I'm trying to grow these samples into
something more complex and I'm having a little difficulty.
I have a SOAP Service, with a function which returns an array of type
"TreeObject". The hope is that the client can then invoke functions,
specifically on that instance of a TreeObject, such as "getId",
"getName", etc and what ever else I fancy but I'm having difficulties
writing a WSDL fileto do this.
This is basically what I have written so far:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="Customer"
targetNamespace="http://wwwpreview.#deleted#.co.uk/~ptaylor/
Customer.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://wwwpreview.#deleted#.co.uk/~ptaylor/Customer.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<message name="StringParam">
<part name="retval" type="xsd:string" />
</message>
<message name="void">
</message>
<message name="getCustomersRetval">
<part name="retval" type="xsd:string" />
</message>
<portType name="customer_port_type">
<operation name="getCustomers">
<input message="tns:void" />
<output message="tns:getCustomersRetval" />
</operation>
</portType>
<binding name="customer_binding" type="tns:customer_port_type">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/
http" />
<operation name="getCustomers">
<soapperation soapAction="urn:Customer#getCustomers" />
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:Customer"
use="encoded" />
</input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:Customer"
use="encoded" />
</output>
</operation>
</binding>
<service name="CustomerService">
<documentation>Service provides access to and from server side
customer functions</documentation>
<port binding="tns:customer_binding" name="customer_port">
<soap:address
location="http://wwwpreview.#deleted#.co.uk/cgi-bin/poc/
Customer.cgi" />
</port>
</service>
</definitions>
but I would like to say that getCustomers returns an array of
"TreeObject", and that a TreeObject has functions such as getId,
getName, setId, setName etc. (It currently returns a string)
I'd really appreciate any help I can get.
Thank you
Phillip Taylor