Henk, I believe the Apache SOAP interoperability docs are quite clear on this. You say the SOAP request from an MS client looks like this:
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP:Body> <GetItemMaster> <sXML><![CDATA="MesApi/Schemas/version1.0/GetItemMaster">HT11000000551]> </GetItemMaster> </SOAP:Body> </SOAP:Envelope> I hope you typed this rather than cut-and-paste it, since it is missing the </sXML> tag! If the actual request is missing that, the XML parser used by Apache SOAP should reject it. Anyway, the interop docs state >>>> When an xsi:type attribute indicating the type of <arg1> or <x:arg2> is not found, Apache SOAP uses the name of the parameter (arg1 or x:arg2, in this case) with a namspace URI of "" for unqualified names as the type. <<<< Therefore, your deployment descriptor should provide a mapping for sXML, such as <isd:map encodingStyle="soap-enc-uri" xmlns:z="" qname="z:sXML" xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/> As for Soumen's remarks.... The S in SOAP is for Simple, and at first glance, the SOAP spec itself is pretty simple. Most programmers could probably sit down and write code to generate a valid SOAP message in a single day, and they could probably write code to read that message in about the same amount of time. It is another thing altogether, however, to write software that can read *every* valid SOAP message. The spec allows for many different ways to represent any particular message. To make things more difficult, some SOAP messages can only be fully understood with the assistance of a WSDL description of that message, and in the early days of SOAP, there was no such thing as WSDL. If you started writing your SOAP implemenation before WSDL, you had a lot of retrofitting to do if you wanted to catch up. Any SOAP implementation will probably be able to understand a subset of all valid SOAP messages. One difference between implementations will be the percentage of messages that can be understood, and the exact subset which that covers. With the effort that has been put into Apache SOAP, it understands some messages, but not others. Since development has moved to the Axis project, things will not get much better for Apache SOAP. Axis, on the other hand, will be able to understand a larger set of messages (and it will be able to use WSDL). Overall within the web services world, I expect interoperability to improve with time, as two things will happen. First, more total effort will have been put toward each of the various SOAP implementations, and they will each hopefully cover a greater subset of the specification. Second, as implementors work with the specification and with interoperability problems with other implementors who have interpretted the specification differently, the specification itself will evolve to resolve ambiguities and tie up loose ends. However, if you are betting the company on web services interoperability today, you had better be prepared to go out of business. This sort of evolution happens with every specification. CORBA has had many interoperability issues during its evolution. Even MIDI 1.0, a painfully simple specification, suffered from interoperability problems, and I used to have nightmares about the problems of using a CERN proxy with an NCSA web server. It takes years for specification-based interoperability to mature to a level at which it no longer is an issue. Finally, that many application servers have exhibited similar web services interoperability problems is not surprising, since many of them use Apache SOAP! Scott ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, November 08, 2001 6:05 PM Subject: RE: XML namespacing Soumen, I am glad you feel the same way. Only at the moment I have a challange. I am trying to modify the two sources of soap the way that all will also work without the namespacing. The sources i try to modify are: - QName.java - Deserialize.java If I have the wrong ones, or if someone have a better idea, please let me know. I just can't ask the originator client to add a patch or something else, because all other servers are unfortunately NT servers with MS Soap. It all works if they include the 'xmlns' in the requester tag, but thay can't with all the other servers. I hope that there is someone else who had the same problem and found a solution. Thanks in advance. Henk. Soumen Sarkar <[EMAIL PROTECTED]> 11/08/2001 11:26 AM PST Please respond to soap-dev To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> cc: bcc: Subject: RE: XML namespacing I followed this message exchange and similar in past. They all refer to interoperability problem. Could SOAP experts clarify the following: 1. Without seamless interoperability, how web service community may prosper. Hand plumbing (e.g take out namespace from SOAP request) is not good for web service prosperity. SOAP spec is permissible of many forms of encoding (all SOAP spec compliant). There has to be some encoding negotiation (like OSI presentation layer) which if successful, would gurantee seamless interoperability (from that point). What is being done in this respect, from a specification perspective? Please note that this kind of problems are not there in CORBA/IIOP. The spec is rock solid. At least client side portability is pretty much taken for granted. 2. I have evaluated some application servers regarding their web service support. In many cases I had problems with namespace issues. Sometimes it looks very trivial like this particular thread (all parameters are there in the message but namespace issues are blocking interop). I think namespace issue is seperate from soap encoding issues. Should there be negotioations on namespaces as well? Overall, from interoperability standpoint, my feeling is that SOAP is pretty immature from a specification perspective. This will hinder industry wide adoptability. I welcome clarifications on this point. Thanks, Soumen Sarkar. -----Original Message----- From: Henk Schipper [mailto:[EMAIL PROTECTED]] Sent: Thursday, November 08, 2001 5:26 AM To: [EMAIL PROTECTED] Subject: RE: XML namespacing 2.0 they say. I only saw the client they are running to get requests. And this request is shown at the bottom at this mail. I one way I have to get rid of the 'xmlns' in the 'my_request' tag. How would I do that. The only thing I read is that from the apache site, its a bug in the ms soap toolkit. On the other hand it is the most normal case within microsoft. Please HELP. I also read a lot of interoperabillity tests, but this specific thing is not clear enough anymore for me. <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV :Body> <my_request xmlns="get.details"> <field1>010100970</field1> </my_request> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Thanks in advance. Henk. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Thursday, 08 November, 2001 2:16 PM To: [EMAIL PROTECTED] Subject: Re: XML namespacing Henk, After looking harder at requests coming from a Java client vs MS client I see they do not include a namespace...and your deployment descriptor is counting on a namespace....What version of the MS toolkit are your clients using? //java client <SOAP-ENV:Envelope xmlns:SOAP-ENV ="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi ="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd ="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:GetItemMaster xmlns:ns1 ="urn:http://localhost:80/mesapi/MESGetData.xml" SOAP-ENV:encodingStyle ="http://schemas.xmlsoap.org/soap/encoding/"> <sXML xsi:type="xsd:string"><![CDATA="mesapi/schemas/version1.0/getitemmaster">QX1 1001895181]> </ns1:GetItemMaster> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ///And here is the request coming from a MS SOAP client <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP:Body> <GetItemMaster> <sXML><![CDATA="MesApi/Schemas/version1.0/GetItemMaster">HT11000000551]> </GetItemMaster> </SOAP:Body> </SOAP:Envelope> Both are hitting a MS SOAP server...asp listener etc... Henk.Schipper@softw are684.com To: [EMAIL PROTECTED] cc: (bcc: Doug Swanson/US-Corporate/3M/US) 11/08/2001 02:49 AM Subject: XML namespacing Please respond to soap-dev (See attached file: att1.htm) =