I think this is a bug, because I've seen this behavior in other questions. Please file a bug report.
Axis appears to always generate a namespace attribute in the wsdlsoap:body definition, e.g.: <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> But, per the WS-I BP, you must not use the namespace attribute when defining a doc/literal wsdlsoap:body element, e.g.: <wsdlsoap:body use="literal"/> Here's the WS-I BP rule: 5.6.11 Namespaces for soapbind Elements There is confusion about what namespace is associated with the child elements of various children of soap:Envelope, which has led to interoperability difficulties. The Profile defines these. R2716 A document-literal binding in a DESCRIPTION MUST NOT have the namespace attribute specified on contained soapbind:body, soapbind:header, soapbind:headerfault and soapbind:fault elements. R2717 An rpc-literal binding in a DESCRIPTION MUST have the namespace attribute specified, the value of which MUST be an absolute URI, on contained soapbind:body elements. R2726 An rpc-literal binding in a DESCRIPTION MUST NOT have the namespace attribute specified on contained soapbind:header, soapbind:headerfault and soapbind:fault elements. In a document-literal SOAP binding, the serialized element child of the soap:Body gets its namespace from the targetNamespace of the schema that defines the element. Use of the namespace attribute of the soapbind:body element would override the element's namespace. This is not allowed by the Profile. Conversely, in a rpc-literal SOAP binding, the serialized child element of the soap:Body element consists of a wrapper element, whose namespace is the value of the namespace attribute of the soapbind:body element and whose local name is either the name of the operation or the name of the operation suffixed with "Response". The namespace attribute is required, as opposed to being optional, to ensure that the children of the soap:Body element are namespace-qualified. -----Original Message----- From: Pascal Prioux [mailto:[EMAIL PROTECTED] Sent: Friday, June 11, 2004 7:17 AM To: [EMAIL PROTECTED] Subject: WSI-BasicProfile 1.0 WSDL file Hi I use axis 1.2 Beta release. I've succcessfully deployed and runned a .Net C++ client and a java Swing Axis client using the wsdl generated by axis 1.2 Beta with the axis-java2wsdl Ant task using style="rpc" as parameter I've a problem with wscompile tool bundled in the Micro Edition Wireless ToolKit 2.1 I use the axis-java2wsdl Ant task using style="document" and use="literal" as parameter for generating a WSI-BasicProfile compliant wsdl file My question is: Can Axis generated a WSI-BasicProfile compliant wsdl file and ho can i do this ? I get the folowwing error when ruuning wscompile on the axis generated wsdl file: warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "loadMIDPRecordStore" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "loadMIDPRecordStore" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getMIDPRecordStoreRecord" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getMIDPRecordStoreRecord" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getVectorOfMIDPRecordStoreRecord" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getVectorOfMIDPRecordStoreRecord" warning: ignoring operation "getVectorOfMIDPRecordStoreRecord": more than one part in input message warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getArrayOfMIDPRecordStoreRecord" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getArrayOfMIDPRecordStoreRecord" warning: ignoring operation "getArrayOfMIDPRecordStoreRecord": more than one part in input message warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getMIDPDataLenth" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getMIDPDataLenth" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getMIDPRecordCount" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "getMIDPRecordCount" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "login" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "login" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "logout" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "logout" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "initSession" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "initSession" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "setSessionTimeOut" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "setSessionTimeOut" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "sendMail" warning: R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for soapbind:body: "sendMail" warning: ignoring operation "sendMail": more than one part in input message error: Found unknown simple type: byte[] Here is the axis generated wsdl file: <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="urn:jmeprovisioning-rpc-service" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:jmeprovisioning-rpc-service" xmlns:intf="urn:jmeprovisioning-rpc-service" xmlns:tns1="event.control.entreprise.server.tools.enitab" xmlns:tns2="http://event.control.entreprise.server.tools.enitab" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--WSDL created by Apache Axis version: 1.2beta Built on Mar 31, 2004 (12:47:03 EST)--> <wsdl:types> <schema elementFormDefault="qualified" targetNamespace="urn:jmeprovisioning-rpc-service" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="_recordStoreIdentifier" type="xsd:string"/> <element name="_recordIndex" type="xsd:int"/> <element name="getMIDPRecordStoreRecordReturn" type="xsd:base64Binary"/> <element name="_startRecordIndex" type="xsd:int"/> <element name="_endRecordIndex" type="xsd:int"/> <element name="getVectorOfMIDPRecordStoreRecordReturn" type="apachesoap:Vector"/> <element name="getArrayOfMIDPRecordStoreRecordReturn" type="xsd:base64Binary"/> <element name="getMIDPDataLenthReturn" type="xsd:long"/> <element name="getMIDPRecordCountReturn" type="xsd:long"/> <element name="_loginEvent" type="tns1:ESTLoginEvent"/> <element name="_clientApplicationName" type="xsd:string"/> <element name="initSessionReturn" type="xsd:string"/> <element name="_sessionTimeOut" type="xsd:int"/> <element name="_toEMailAddress" type="xsd:string"/> <element name="_fromEMailAddress" type="xsd:string"/> <element name="_fromPersonalEMailAddress" type="xsd:string"/> <element name="_subject" type="xsd:string"/> <element name="_body" type="xsd:string"/> <element name="_synchronousMode" type="xsd:boolean"/> </schema> <schema elementFormDefault="qualified" targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema"> <complexType name="Vector"> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:anyType"/> </sequence> </complexType> </schema> <schema elementFormDefault="qualified" targetNamespace="http://event.control.entreprise.server.tools.enitab" xmlns="http://www.w3.org/2001/XMLSchema"> <complexType name="ESTServerEventSupport"> <sequence> <element name="eventName" nillable="true" type="xsd:string"/> </sequence> </complexType> </schema> <schema elementFormDefault="qualified" targetNamespace="event.control.entreprise.server.tools.enitab" xmlns="http://www.w3.org/2001/XMLSchema"> <complexType name="ESTLoginEvent"> <complexContent> <extension base="tns2:ESTServerEventSupport"> <sequence> <element name="identifier" nillable="true" type="xsd:string"/> <element name="password" nillable="true" type="xsd:string"/> </sequence> </extension> </complexContent> </complexType> </schema> </wsdl:types> <wsdl:message name="getVectorOfMIDPRecordStoreRecordResponse"> <wsdl:part element="impl:getVectorOfMIDPRecordStoreRecordReturn" name="getVectorOfMIDPRecordStoreRecordReturn"/> </wsdl:message> <wsdl:message name="sendMailRequest"> <wsdl:part element="impl:_toEMailAddress" name="_toEMailAddress"/> <wsdl:part element="impl:_fromEMailAddress" name="_fromEMailAddress"/> <wsdl:part element="impl:_fromPersonalEMailAddress" name="_fromPersonalEMailAddress"/> <wsdl:part element="impl:_subject" name="_subject"/> <wsdl:part element="impl:_body" name="_body"/> <wsdl:part element="impl:_synchronousMode" name="_synchronousMode"/> </wsdl:message> <wsdl:message name="getArrayOfMIDPRecordStoreRecordRequest"> <wsdl:part element="impl:_startRecordIndex" name="_startRecordIndex"/> <wsdl:part element="impl:_endRecordIndex" name="_endRecordIndex"/> </wsdl:message> <wsdl:message name="loadMIDPRecordStoreResponse"> </wsdl:message> <wsdl:message name="getVectorOfMIDPRecordStoreRecordRequest"> <wsdl:part element="impl:_startRecordIndex" name="_startRecordIndex"/> <wsdl:part element="impl:_endRecordIndex" name="_endRecordIndex"/> </wsdl:message> <wsdl:message name="getMIDPDataLenthRequest"> </wsdl:message> <wsdl:message name="getMIDPRecordCountResponse"> <wsdl:part element="impl:getMIDPRecordCountReturn" name="getMIDPRecordCountReturn"/> </wsdl:message> <wsdl:message name="setSessionTimeOutRequest"> <wsdl:part element="impl:_sessionTimeOut" name="_sessionTimeOut"/> </wsdl:message> <wsdl:message name="loginRequest"> <wsdl:part element="impl:_loginEvent" name="_loginEvent"/> </wsdl:message> <wsdl:message name="getMIDPRecordStoreRecordRequest"> <wsdl:part element="impl:_recordIndex" name="_recordIndex"/> </wsdl:message> <wsdl:message name="getMIDPRecordStoreRecordResponse"> <wsdl:part element="impl:getMIDPRecordStoreRecordReturn" name="getMIDPRecordStoreRecordReturn"/> </wsdl:message> <wsdl:message name="getMIDPRecordCountRequest"> </wsdl:message> <wsdl:message name="sendMailResponse"> </wsdl:message> <wsdl:message name="setSessionTimeOutResponse"> </wsdl:message> <wsdl:message name="logoutResponse"> </wsdl:message> <wsdl:message name="initSessionRequest"> <wsdl:part element="impl:_clientApplicationName" name="_clientApplicationName"/> </wsdl:message> <wsdl:message name="loadMIDPRecordStoreRequest"> <wsdl:part element="impl:_recordStoreIdentifier" name="_recordStoreIdentifier"/> </wsdl:message> <wsdl:message name="logoutRequest"> </wsdl:message> <wsdl:message name="getArrayOfMIDPRecordStoreRecordResponse"> <wsdl:part element="impl:getArrayOfMIDPRecordStoreRecordReturn" name="getArrayOfMIDPRecordStoreRecordReturn"/> </wsdl:message> <wsdl:message name="initSessionResponse"> <wsdl:part element="impl:initSessionReturn" name="initSessionReturn"/> </wsdl:message> <wsdl:message name="loginResponse"> </wsdl:message> <wsdl:message name="getMIDPDataLenthResponse"> <wsdl:part element="impl:getMIDPDataLenthReturn" name="getMIDPDataLenthReturn"/> </wsdl:message> <wsdl:portType name="SoapJMEProvisioningSession"> <wsdl:operation name="loadMIDPRecordStore" parameterOrder="_recordStoreIdentifier"> <wsdl:input message="impl:loadMIDPRecordStoreRequest" name="loadMIDPRecordStoreRequest"/> <wsdl:output message="impl:loadMIDPRecordStoreResponse" name="loadMIDPRecordStoreResponse"/> </wsdl:operation> <wsdl:operation name="getMIDPRecordStoreRecord" parameterOrder="_recordIndex"> <wsdl:input message="impl:getMIDPRecordStoreRecordRequest" name="getMIDPRecordStoreRecordRequest"/> <wsdl:output message="impl:getMIDPRecordStoreRecordResponse" name="getMIDPRecordStoreRecordResponse"/> </wsdl:operation> <wsdl:operation name="getVectorOfMIDPRecordStoreRecord" parameterOrder="_startRecordIndex _endRecordIndex"> <wsdl:input message="impl:getVectorOfMIDPRecordStoreRecordRequest" name="getVectorOfMIDPRecordStoreRecordRequest"/> <wsdl:output message="impl:getVectorOfMIDPRecordStoreRecordResponse" name="getVectorOfMIDPRecordStoreRecordResponse"/> </wsdl:operation> <wsdl:operation name="getArrayOfMIDPRecordStoreRecord" parameterOrder="_startRecordIndex _endRecordIndex"> <wsdl:input message="impl:getArrayOfMIDPRecordStoreRecordRequest" name="getArrayOfMIDPRecordStoreRecordRequest"/> <wsdl:output message="impl:getArrayOfMIDPRecordStoreRecordResponse" name="getArrayOfMIDPRecordStoreRecordResponse"/> </wsdl:operation> <wsdl:operation name="getMIDPDataLenth"> <wsdl:input message="impl:getMIDPDataLenthRequest" name="getMIDPDataLenthRequest"/> <wsdl:output message="impl:getMIDPDataLenthResponse" name="getMIDPDataLenthResponse"/> </wsdl:operation> <wsdl:operation name="getMIDPRecordCount"> <wsdl:input message="impl:getMIDPRecordCountRequest" name="getMIDPRecordCountRequest"/> <wsdl:output message="impl:getMIDPRecordCountResponse" name="getMIDPRecordCountResponse"/> </wsdl:operation> <wsdl:operation name="login" parameterOrder="_loginEvent"> <wsdl:input message="impl:loginRequest" name="loginRequest"/> <wsdl:output message="impl:loginResponse" name="loginResponse"/> </wsdl:operation> <wsdl:operation name="logout"> <wsdl:input message="impl:logoutRequest" name="logoutRequest"/> <wsdl:output message="impl:logoutResponse" name="logoutResponse"/> </wsdl:operation> <wsdl:operation name="initSession" parameterOrder="_clientApplicationName"> <wsdl:input message="impl:initSessionRequest" name="initSessionRequest"/> <wsdl:output message="impl:initSessionResponse" name="initSessionResponse"/> </wsdl:operation> <wsdl:operation name="setSessionTimeOut" parameterOrder="_sessionTimeOut"> <wsdl:input message="impl:setSessionTimeOutRequest" name="setSessionTimeOutRequest"/> <wsdl:output message="impl:setSessionTimeOutResponse" name="setSessionTimeOutResponse"/> </wsdl:operation> <wsdl:operation name="sendMail" parameterOrder="_toEMailAddress _fromEMailAddress _fromPersonalEMailAddress _subject _body _synchronousMode"> <wsdl:input message="impl:sendMailRequest" name="sendMailRequest"/> <wsdl:output message="impl:sendMailResponse" name="sendMailResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="servicesSoapBinding" type="impl:SoapJMEProvisioningSession"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="loadMIDPRecordStore"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="loadMIDPRecordStoreRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="loadMIDPRecordStoreResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getMIDPRecordStoreRecord"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="getMIDPRecordStoreRecordRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="getMIDPRecordStoreRecordResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getVectorOfMIDPRecordStoreRecord"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="getVectorOfMIDPRecordStoreRecordRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="getVectorOfMIDPRecordStoreRecordResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getArrayOfMIDPRecordStoreRecord"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="getArrayOfMIDPRecordStoreRecordRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="getArrayOfMIDPRecordStoreRecordResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getMIDPDataLenth"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="getMIDPDataLenthRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="getMIDPDataLenthResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getMIDPRecordCount"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="getMIDPRecordCountRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="getMIDPRecordCountResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="login"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="loginRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="loginResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="logout"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="logoutRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="logoutResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="initSession"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="initSessionRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="initSessionResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="setSessionTimeOut"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="setSessionTimeOutRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="setSessionTimeOutResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="sendMail"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="sendMailRequest"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:input> <wsdl:output name="sendMailResponse"> <wsdlsoap:body namespace="urn:jmeprovisioning-rpc-service" use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="SoapJMEProvisioningSessionService"> <wsdl:port binding="impl:servicesSoapBinding" name="services"> <wsdlsoap:address location="http://ppx-ps.enitab.fr:8080/jmeprovisioning/control/services"/> </wsdl:port> </wsdl:service> </wsdl:definitions> Thanks in advance Pascal PRIOUX
