[Xml-compile] Empty strings result in parameters not sent - XML::Compile::WSDL

henrik at adapt.dk henrik at adapt.dk
Mon Apr 29 09:18:53 GMT 2013


Hi

I have a problem trying to use a webservice on Apache Axis using
SOAP-RPC from XML::Compile::WSDL11.

The server side complains that some argumnents are missing if i set
them to empty strings.

Snippet of WSDL:
   <wsdl:message name="processRequest">
      <wsdl:part name="type" type="xsd:string"/>
      <wsdl:part name="webUser" type="xsd:string"/>
      <wsdl:part name="customerNumber" type="xsd:string"/>
      <wsdl:part name="clientIdentity" type="xsd:string"/>
      <wsdl:part name="encryptedPassword" type="xsd:string"/>
      <wsdl:part name="name" type="xsd:string"/>
      <wsdl:part name="clientMailAddress" type="xsd:string"/>
   </wsdl:message>

If i do this:
 my ($answer, $trace) = $call->(
  type => "1",
  webUser => "webuser1",
  customerNumber => "20746",
  clientIdentity => "",
  encryptedPassword => "",
  name => "Thomas Noergaard",
  clientMailAddress => 'tn\@XXX.dk'
 );
I get an error (the arguments clientIdentity and encryptedPassword are
not in the XML generated and sent to the server), but if I do this:
 my ($answer, $trace) = $call->(
  type => "1",
  webUser => "webuser1",
  customerNumber => "20746",
  clientIdentity => " ",
  encryptedPassword => " ",
  name => "Thomas Noergaard",
  clientMailAddress => 'tn\@XXX.dk'
 );
i.e. set them to a space instead, they appear in the generated XML.
Is this an error on my part? In XML::Compile::WSDL? or should the
server-side accept the SOAP package without complaining?

Reading the W3C SOAP specs did'nt give me any clues (but a mild
headache), googling gave no leads (perhas my google-foo is'nt good
enough), so I turn to the assembled wisdom of this list in the hope of
some enlightenment.

Henrik Tougaard (HTOUG)
Adapt A/S, Denmark



More information about the Xml-compile mailing list