Hate to reply to my own question, but I've learned something about what 
was going wrong. Instead, I have a new question.

On May 29, 2004, at 5:55 PM, I wrote:

> I'm trying to use wsdlDriver.rb to call a Web service. I have a WSDL 
> file. When I run my script, it connects to the Web service, calls the 
> operation I specify ("approve"), and receives the response string. 
> However, it doesn't put the response string into the message part that 
> the operation "approve" uses as its output message. Instead, it tries 
> to find something called "approveResponse", which is not described in 
> the WSDL file. I see the following error:
>
> c:/ruby/lib/ruby/1.8/wsdl/soap/complexType.rb:69:in 
> `child_defined_complextype': Cannot find 
> {http://www.w3.org/2001/XMLSchema}string as a children of 
> {http://loans.org/wsdl/loan-approval}approveResponse. (RuntimeError)
> 	from c:/ruby/lib/ruby/1.8/soap/encodingstyle/soapHandler.rb:382:in 
> `decode_tag_by_wsdl'
> 	...

It turns out that the WSDL didn't match the reply from the server. The 
reply body is

<ns1:approveResponse soapenv:encodingStyle="..." xmlns:ns1="...">
   <xsd:string>approved</xsd:string>
</ns1:approveResponse>

Now, the WSDL for the reply message used to be

<message name="approvalMessage">
   <part name="accept" type="xsd:string"/>
</message>

so I tried changing that to

<message name="approvalMessage">
   <part name="approveResponse" type="xsd:string"/>
</message>

but that didn't work. I saw the same error message ("can't find string 
as child of approveResponse"). So I tried


<message name="approvalMessage">
   <part name="string" type="xsd:string"/>
</message>

and it worked! Now I need to figure out why I have to call the part 
"string". Does anyone know what is going on here?

Thanks for your help.

Jim
-- 
Jim Menard, jimm / io.com, http://www.io.com/~jimm/
"Dvorak users of the world flgkd!" -- Kirsten Chevalier in 
rec.humor.oracle.d