soaplite deserialization problem
I am using a perl client to make calls on a server written in C++
using SOAP::Lite. This is using the wsdl file. The client side
SOAP::Deserializer in SOAP::Lite raises the "Unspecified namespace for
DSTPField" for the datatype DSTPField defined in the xml file.
I am writing down the portions of two seperate xml files which
contains the format of the fields in the response expected from the
server, for two different calls.
<fields xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="DSTPField">
Similarly for SourceInfo, the exception "Unspecified namespace" is
<siv xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="SourceInfo">
In the WSDL file, I have ArrayofDSTPField as shown below.DSTPField is
a complex datatype.
<element name="item" type="DS:DSTPField" minOccurs="0"
<attribute ref="SOAP-ENC:arrayType" WSDL:arrayType="DS:DSTPField"/>
As can be seen the WSDL file contains the namespace "DS" with the
DSTPField. However the DSTPField in the xml is not prefixed with the
"DS" namespace. I believe that this is the source of the problem.
However, I have gone through several example wsdl and xml files
available on net to find out that this syntax is correct (presence of
namespace in WSDL file and absence in the xml response file for
arrays). Kindly correct me if i am wrong.
Keeping the above things in mind, I would appreciate if someone could
offer me a possible solution to this problem. Is it a problem with
SOAP::Lite's handling of arrays/vectors or something needs to be
changed in the server side?