The problem is that the xsd prefix used for the array of
strings and its elements refers to the namespace
URI "http://www.w3.org/1999/XMLSchema", but the wsdl is
expecting "http://www.w3.org/2001/XMLSchema".
I can work around this problem by changing Lite.pm from
DEFAULT_XML_SCHEMA
=> 'http://www.w3.org/1999/XMLSchema',
to
DEFAULT_XML_SCHEMA
=> 'http://www.w3.org/2001/XMLSchema',
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
wsdl
Logged In: YES
user_id=469721
Sorry...
Using the attached wsdl and perl client code, SOAP::Lite is
generating incorrect SOAP:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-
ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-
ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encodi
ng/">
<SOAP-ENV:Body>
<namesp1:addStrings
xmlns:namesp1="http://www.visiblepath.com/services/vpservi
ce">
<strings
xsi:type="ns:ArrayOfString"
xmlns:ns="java:language_builtins.lang"
SOAP-ENC:arrayType="xsd:string[3]">
<item
xsi:type="xsd:string">foo</item>
<item
xsi:type="xsd:string">bar</item>
<item
xsi:type="xsd:string">baz</item>
</strings>
</namesp1:addStrings>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The problem is that the xsd prefix used for the array of
strings and its elements refers to the namespace
URI "http://www.w3.org/1999/XMLSchema", but the wsdl is
expecting "http://www.w3.org/2001/XMLSchema".
I can work around this problem by changing Lite.pm from
DEFAULT_XML_SCHEMA
=> 'http://www.w3.org/1999/XMLSchema',
to
DEFAULT_XML_SCHEMA
=> 'http://www.w3.org/2001/XMLSchema',
Logged In: YES
user_id=28043
This is being fixed in SOAP::Lite 0.65 when the default XML
Schema will be 2001 (not 1999). Welcome to the 21st century
SOAP::Lite.