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>