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)


=


Reply via email to