Alexander - IMHO, the WSDL issue is a .NET problem to solve. The fact that you can hack a parseable WSDL definition doesn't prove correctness. Correctness is defined based on interpretation of the base specification and underlying XML schema.
Can you show us in the WSDL specification [1] where the namespaces for request messages must equal the namespaces for response messages. I believe the specification is silent in this regard. But here's my rational for the fact that it is a .NET issue. If the namespaces MUST be the same, wouldn't the creators of the schema placed the namespace attribute on the enclosing wsdl:operation tag. After all, if the attribute values were REQUIRED to be the same for wsdl:input and wsdl:output, then the multiple attribute definition is redundant. Also, in regard to the naming of the return value tag, this should be specified in the WSDL. You did not show us the WSDL definition such as the example that follows: <wsdl:message name="DumpConvHeaderInfoResponse"> <wsdl:part name="return" type="SOAP-ENC:string"/> </wsdl:message> Again, if the name of the root return value tag MUST be 'return', then why define an attribute on the part tag defining the response message. I don't see any reference in the SOAP specification [2] or schema [3] to back up your assertion. [1] http://www.w3.org/TR/wsdl [2] http://www.w3.org/TR/2001/WD-soap12-part0-20011217/ [3] http://www.w3.org/2001/12/soap-envelope /Chris -----Original Message----- From: Volanis, Alexander [mailto:[EMAIL PROTECTED]] Sent: Wednesday, May 15, 2002 6:27 PM To: '[EMAIL PROTECTED]' Subject: RE: [BUG] Beta2 interop (was RE: Interoperability issue with MSVC++.Net) I would disagree. Correcting the WSDL to reflect the SOAP messages in a way that is consistent fixes the problem. There is also the new beta 2 issue that you are not responding to. The namespace definitions for the operation bindings are no longer the same between input and output messages. -----Original Message----- From: Fred Hartman [mailto:[EMAIL PROTECTED]] Sent: Thursday, May 16, 2002 5:39 AM To: [EMAIL PROTECTED] Subject: RE: [BUG] Beta2 interop (was RE: Interoperability issue with MSVC++.Net) I believe this is a .NET problem. I understand the naming rules are as follows: If the part references a simple type, the name of the part is used for the SOAP:Body element name. If the part references a complex type, the names of the children of the complexType are used as the SOAP:Body element names. If the part references an element, the localName of the element is used for the SOAP:Body element. -Fred -----Original Message----- From: Volanis, Alexander [mailto:[EMAIL PROTECTED]] Sent: Wednesday, May 15, 2002 1:35 PM To: '[EMAIL PROTECTED]' Subject: [BUG] Beta2 interop (was RE: Interoperability issue with MSVC++.Net) Hi all, I know you all have a very busy schedule but nobody has acknowledged this message in the past few days and I am wondering if it was noticed. I believe there is an interoperability issue here with respect to clients written using VC++.Net. If you need additional info I can provide anything you need. Thank you, Alex Volanis Consulting Engineer e-mail: [EMAIL PROTECTED] -----Original Message----- From: Volanis, Alexander Sent: Friday, May 10, 2002 1:50 PM To: '[EMAIL PROTECTED]' Subject: Interoperability issue with MSVC++.Net Hi all, I have developed an Axis RPC web service that works very nicely with C#.Net and VB.Net clients. Doing the same with VC++.Net which uses ATL 7.0 to parse the XML messages revealed two issues with the generated WSDL. Issue 1) The generated WSDL contains response message definitions that look like this: <wsdl:message name="methodResponse"> <wsdl:part name="return" type="tns1:complexTypeResponse" /> </wsdl:message> When the method is invoked the result message looks like this: <SOAP-ENV:Body> <ns1:methodResponse SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="method"> <methodReturn xsi:type="ns2:complexTypeResponse" xmlns:ns2="http://rsasecurity.com/testService"> ... </methodReturn> </ns1:methodResponse> </SOAP-ENV:Body> MSVC++.Net generates some table based parsing that assumes the response element will be named "return" instead of "methodReturn". I looked into the Axis sources but could not pinpoint the problem. It seems to me that the Java2WSDL should be able to keep the element name consistent with the method invocation. I tried the WSDD operation element returnQName attribute but I had no success. Is the returnQName attribute supported in Axis? Issue 2) This problem appeared in beta 2 and I can still see this in the 5/6/2002 nightly build. The problem has to do with the generated operation bindings. The namespace for input is different from the namespace for output. The MS service proxy generator utility stops with an error indicating that namespaces must be the same. This is what I get for the operation method binding: <wsdl:operation name="method"> <wsdlsoap:operation soapAction="" /> <wsdl:input> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="method" use="encoded" /> </wsdl:input> <wsdl:output> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:7001/axis/services/test" use="encoded" /> </wsdl:output> </wsdl:operation> Notice how the namespace is the method name for input and the service URI for output. Both of these problems I can correct by editing the WSDL but I would rather see the correct WSDL generated instead. Thank you for your time and this great product! Regards, Alex Volanis Consulting Engineer e-mail: [EMAIL PROTECTED]