hi,
i generated a driver from a wsdl at runtime using:
driver =
SOAP::WSDLDriverFactory.new("test_service.wsdl").create_rpc_driver
that works correctly - generating the following soap request:
<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<n1:TestService xmlns:n1="test">
<n1:strName>Smith</n1:strName>
<n1:strCounty>Jefferson</n1:strCounty>
</n1:TestService>
</env:Body>
</env:Envelope>
when i generate a driver using wsdl2ruby like so:
wsdl2ruby.rb --wsdl test_service.wsdl --type client
the soap request looks like:
<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<n1:TestService xmlns:n1="test">
<strName>Smyth</strName>
<strCounty>Jefferson</strCounty>
</n1:TestService>
</env:Body>
</env:Envelope>
the difference is that the "strName" and "strCount" elements in the
request body do not have the "n1" namespace.
which results in the soap server not recognize the strName/strCount
parameters in the request.
the fragment of the wsdl for the request looks like this:
<s:element name="test">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="strKeyword"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="strName"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="strCounty"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="strYear"
type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
per my client's request, i cannot include the actual wsdl.
is there a way to force wsdl2ruby to generate the required namespace?
thanks!