hi,

we publish some services processing some db requests or algorithms of natural speech processing. so we have to use some more complex parameters as string or so on.

We use a Request- and ResponseParameter-Objekt for this. Both objects include a String[][]. With an axis for java generated client this all works fine. Using axis for C++ or .NET the String[][] will be replaced in their clients by String[].

an example wsdl is attached.

.NET produces the following warning:
D:\TEMP>wsdl MARSwsdl
Microsoft (R) Web Services Description Language Utility
[Microsoft(R) .NET Framework, Version 2.0.40607.16]
Copyright (C) Microsoft Corporation. All rights reserved.

Warning: This web reference does not conform to WS-I Basic Profile v1.0.
R2706: A wsdl:binding in a DESCRIPTION MUST use the value of "literal" for the use attribute in all soapbind:body, soapbind:fault, soapbind:header and soapbind:
headerfault elements.
- Operation 'execute' on binding 'MARSSoapBinding' from namespace 'urn:MARS'.
- Operation 'ping' on binding 'MARSSoapBinding' from namespace 'urn:MARS'.


Writing file 'D:\TEMP\MARSService.cs'.


looking in the wsdl file there is an "encoded" instead of the "literal".


does anyone have an idea solving this problem?

i use Axis 1.1 and i tried it with Axis 1.2 too.


thanks ciao marco
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:MARS" xmlns="http://schemas.xmlsoap.org/wsdl/"; xmlns:apachesoap="http://xml.apache.org/xml-soap"; xmlns:impl="urn:MARS" xmlns:intf="urn:MARS" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";><wsdl:types><schema targetNamespace="urn:MARS" xmlns="http://www.w3.org/2001/XMLSchema";><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="ArrayOfArrayOf_xsd_string"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[][]"/></restriction></complexContent></complexType><complexType name="RequestParameter"><sequence><element name="corpus" nillable="true" type="xsd:string"/><element name="parameters" nillable="true" type="impl:ArrayOfArrayOf_xsd_string"/></sequence></complexType><complexType name="ResponseParameter"><sequence><element name="result" nillable="true" type="impl:ArrayOfArrayOf_xsd_string"/></sequence></complexType></schema></wsdl:types>
  <wsdl:message name="pingResponse">
    <wsdl:part name="pingReturn" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="executeResponse">
    <wsdl:part name="executeReturn" type="impl:ResponseParameter"/>
  </wsdl:message>
  <wsdl:message name="executeRequest">
    <wsdl:part name="objRequestParameters" type="impl:RequestParameter"/>
  </wsdl:message>
  <wsdl:message name="pingRequest">
  </wsdl:message>
  <wsdl:portType name="MARS">
    <wsdl:operation name="execute" parameterOrder="objRequestParameters">
      <wsdl:input message="impl:executeRequest" name="executeRequest"/>
      <wsdl:output message="impl:executeResponse" name="executeResponse"/>
    </wsdl:operation>
    <wsdl:operation name="ping">
      <wsdl:input message="impl:pingRequest" name="pingRequest"/>
      <wsdl:output message="impl:pingResponse" name="pingResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="MARSSoapBinding" type="impl:MARS">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="execute">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="executeRequest">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:MARS" use="encoded"/>
      </wsdl:input>
      <wsdl:output name="executeResponse">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:MARS" use="encoded"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="ping">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="pingRequest">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:MARS" use="encoded"/>
      </wsdl:input>
      <wsdl:output name="pingResponse">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:MARS" use="encoded"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="MARSService">
    <wsdl:port binding="impl:MARSSoapBinding" name="MARS">
      <wsdlsoap:address location="http://139.18.40.212:8100/axis/services/MARS"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Reply via email to