The current CVS revision has this code

    String name = paramEl.getLocalName();

    if (name == null)
      name = paramEl.getTagName();

Scott Nichol

Do not send e-mail directly to this e-mail address,
because it is filtered to accept only mail from
specific mail lists.
----- Original Message ----- 
From: "Christian Landbo (Presys A/S)" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, March 11, 2004 9:47 AM
Subject: Getting tagname incl. namespace pointer mixed up with name of element -> No 
deserializer found...


I'm sorry if this has been asked before. I searched the archives for answers
to this but could not find any.
I am new to SOAP but would be surprised if this has not been asked before -
but here goes:

Im using Apache soap version 2.3.1

I have a deserializer mapped to 'someNs:login' but when my Apache SOAP web
service receives the envelope below it reports that a deserializer can't be
found for 'someNs:mrns0:login'. It includes the namespace 'pointer' in the
final soapType.

In the unmarshall(...) method of
org.apache.soap.encoding.soapenc.ParameterSerializer
It says:
    String name = paramEl.getTagName();      -- this is 'mrns0:login'

Ought it not be:
    String name = paramEl.getLocalName();    -- this is only 'login'

Enclosed envelope:

<soap:Envelope
    xmlns:mrns0="someNs"
    xmlns:mrns1="someNs:service"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
   <soap:Body
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
      <mrns1:login>
         <mrns0:login>
            <mrns0:att1 xsi:type="mrns0:cvrtype"></mrns0:att1>
            <mrns0:att2 xsi:type="mrns0:pnumbertype"></mrns0:att2>
         </mrns0:login>
      </mrns1:login>
   </soap:Body>
</soap:Envelope>

/Chr


Reply via email to