[soapbuilders] SOAP request or WSDL problem
by Splunge_000 other posts by this author
Jan 29 2004 10:47AM messages near this date
Re: [soapbuilders] Soap and mod_gzip
|
Re: [soapbuilders] SOAP request or WSDL problem
SERVICES Hi gang,
The following SOAP request is generated from my WSDL...
<SOAP-ENV:Envelope xmlns:SOAP-
ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-
ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="urn:soaptest">
<SOAP-ENV:Body>
<m:updateLessComplexObject
xmlns:m="urn:SoapTestsService" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<lcObj xsi:type="m0:LessComplexObject">
<list xsi:type="SOAP-ENC:Array" SOAP-
ENC:arrayType="SimpleObject[1]">
<m0:item0
xsi:type="m0:SimpleObject">
<valueTwo
xsi:type="xsd:string"> String</valueTwo>
<valueOne
xsi:type="xsd:string"> String</valueOne>
</m0:item0>
</list>
</lcObj>
</m:updateLessComplexObject>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
...gives me the error "The value of
the 'http://schemas.xmlsoap.org/soap/encoding/:arrayType' attribute
must be namespace-qualified."
Using the error as a clue, if I hand modify a single line of the
SOAP request I can get it to work. Here's the line I modified; note
that only two chars (the namespace qualification) are different from
the original request above.
<list xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="m0:SimpleObject
[1]">
I added "m0: to it to point to the correct namespace and it works!
Ok, so here's the problem...I can't figure out how to modify my WSDL
so that it generates the namespace qualification. Any ideas? Am I
going about this the right way? Doesn't seem like it should be this
difficult. Thanks, in advance.
WSDL file is below.
Scott
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="urn:SoapTestsService" xmlns:intf="urn:SoapTestsService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns1="urn:soaptest"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:SoapTestsService">
<wsdl:types>
<schema targetNamespace="urn:soaptest"
xmlns="http://www.w3.org/2001/XMLSchema">
<import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType
name="LessComplexStringListObject">
<sequence>
<element name="list"
nillable="true" type="impl:ArrayOf_xsd_string"/>
</sequence>
</complexType>
<element name="LessComplexStringListObject"
nillable="true" type="tns1:LessComplexStringListObject"/>
<complexType
name="LessComplexArrayListObject">
<sequence>
<element name="list"
nillable="true" type="xsd:anyType"/>
</sequence>
</complexType>
<element name="LessComplexArrayListObject"
nillable="true" type="tns1:LessComplexArrayListObject"/>
<complexType name="LessComplexObject">
<sequence>
<element name="list"
nillable="true" type="impl:ArrayOf_tns1_SimpleObject"/>
</sequence>
</complexType>
<complexType name="SimpleObject">
<sequence>
<element name="valueTwo"
nillable="true" type="xsd:string"/>
<element name="valueOne"
nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<element name="LessComplexObject"
nillable="true" type="tns1:LessComplexObject"/>
</schema>
<schema targetNamespace="urn:SoapTestsService"
xmlns="http://www.w3.org/2001/XMLSchema">
<import
namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ArrayOf_xsd_string">
<complexContent>
<restriction
base="soapenc:Array">
<attribute
ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
</restriction>
</complexContent>
</complexType>
<complexType
name="ArrayOf_tns1_SimpleObject">
<complexContent>
<restriction
base="soapenc:Array">
<attribute
ref="soapenc:arrayType" wsdl:arrayType="tns1:SimpleObject[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="getLessComplexArrayListObjectResponse">
<wsdl:part
name="getLessComplexArrayListObjectReturn"
type="tns1:LessComplexArrayListObject"/>
</wsdl:message>
<wsdl:message name="updateLessComplexObjectRequest">
<wsdl:part name="lcObj"
type="tns1:LessComplexObject"/>
</wsdl:message>
<wsdl:message
name="updateLessComplexStringListObjectResponse">
</wsdl:message>
<wsdl:message name="getLessComplexObjectResponse">
<wsdl:part name="getLessComplexObjectReturn"
type="tns1:LessComplexObject"/>
</wsdl:message>
<wsdl:message name="getLessComplexArrayListObjectRequest">
</wsdl:message>
<wsdl:message
name="updateLessComplexArrayListObjectResponse">
</wsdl:message>
<wsdl:message
name="updateLessComplexStringListObjectRequest">
<wsdl:part name="lcObj"
type="tns1:LessComplexStringListObject"/>
</wsdl:message>
<wsdl:message name="getLessComplexStringListObjectResponse">
<wsdl:part
name="getLessComplexStringListObjectReturn"
type="tns1:LessComplexStringListObject"/>
</wsdl:message>
<wsdl:message name="getLessComplexStringListObjectRequest">
</wsdl:message>
<wsdl:message name="updateLessComplexObjectResponse">
</wsdl:message>
<wsdl:message name="updateLessComplexArrayListObjectRequest">
<wsdl:part name="lcObj"
type="tns1:LessComplexArrayListObject"/>
</wsdl:message>
<wsdl:message name="helloResponse">
<wsdl:part name="helloReturn" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="helloRequest">
</wsdl:message>
<wsdl:message name="getLessComplexObjectRequest">
</wsdl:message>
<wsdl:portType name="SoapService">
<wsdl:operation name="hello">
<wsdl:input name="helloRequest"
message="impl:helloRequest"/>
<wsdl:output name="helloResponse"
message="impl:helloResponse"/>
</wsdl:operation>
<wsdl:operation
name="getLessComplexStringListObject">
<wsdl:input
name="getLessComplexStringListObjectRequest"
message="impl:getLessComplexStringListObjectRequest"/>
<wsdl:output
name="getLessComplexStringListObjectResponse"
message="impl:getLessComplexStringListObjectResponse"/>
</wsdl:operation>
<wsdl:operation
name="updateLessComplexStringListObject" parameterOrder="lcObj">
<wsdl:input
name="updateLessComplexStringListObjectRequest"
message="impl:updateLessComplexStringListObjectRequest"/>
<wsdl:output
name="updateLessComplexStringListObjectResponse"
message="impl:updateLessComplexStringListObjectResponse"/>
</wsdl:operation>
<wsdl:operation name="getLessComplexArrayListObject">
<wsdl:input
name="getLessComplexArrayListObjectRequest"
message="impl:getLessComplexArrayListObjectRequest"/>
<wsdl:output
name="getLessComplexArrayListObjectResponse"
message="impl:getLessComplexArrayListObjectResponse"/>
</wsdl:operation>
<wsdl:operation
name="updateLessComplexArrayListObject" parameterOrder="lcObj">
<wsdl:input
name="updateLessComplexArrayListObjectRequest"
message="impl:updateLessComplexArrayListObjectRequest"/>
<wsdl:output
name="updateLessComplexArrayListObjectResponse"
message="impl:updateLessComplexArrayListObjectResponse"/>
</wsdl:operation>
<wsdl:operation name="getLessComplexObject">
<wsdl:input
name="getLessComplexObjectRequest"
message="impl:getLessComplexObjectRequest"/>
<wsdl:output
name="getLessComplexObjectResponse"
message="impl:getLessComplexObjectResponse"/>
</wsdl:operation>
<wsdl:operation name="updateLessComplexObject"
parameterOrder="lcObj">
<wsdl:input
name="updateLessComplexObjectRequest"
message="impl:updateLessComplexObjectRequest"/>
<wsdl:output
name="updateLessComplexObjectResponse"
message="impl:updateLessComplexObjectResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="rpcrouterSoapBinding"
type="impl:SoapService">
<wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="hello">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name="getLessComplexStringListObject">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name="updateLessComplexStringListObject">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getLessComplexArrayListObject">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name="updateLessComplexArrayListObject">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getLessComplexObject">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="updateLessComplexObject">
<wsdlsoap:operation/>
<wsdl:input>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SoapTestsService"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SoapTestsService">
<wsdl:port name="rpcrouter"
binding="impl:rpcrouterSoapBinding">
<wsdlsoap:address
location="http://161.211.145.238/NASApp/soap/rpcrouter"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
-----------------------------------------------------------------
This group is a forum for builders of SOAP implementations to discuss implementation and int
eroperability issues. Please stay on-topic.
Yahoo! Groups Links
To visit your group on the web, go to:
http://groups.yahoo.com/group/soapbuilders/
To unsubscribe from this group, send an email to:
soapbuilders-unsubscribe@[...].com
Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Thread:
Splunge_000
Eric Rajkovic
|