ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> soapbuilders
soapbuilders
[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

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved