You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2003/03/06 23:55:56 UTC

DO NOT REPLY [Bug 17746] New: - xmlns="" appened to subsequent element when no namepsace prefix

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17746>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17746

xmlns="" appened to subsequent element when no namepsace prefix

           Summary: xmlns="" appened to subsequent element when no namepsace
                    prefix
           Product: Axis
           Version: 1.1rc2
          Platform: All
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Basic Architecture
        AssignedTo: axis-dev@ws.apache.org
        ReportedBy: darrenr@orderware.net


When constructing a SOAPEnvelope if you create a namespaced element but without 
a prefix, xmlns="" seems to be appened to the subsequent child element (if you 
give this child element the "" prefix, the xmlns="" is moved to it's child 
element). Some sample code below shows the problem (I have tested this code on 
the JSWDP and the rogue namespace attribute does not appear). This has been 
causing me interop problems when sending document style webservices to .NET 
clients. Sample code (almost identical to SUNS JAXM tutorial) and output to 
follow:

   public static void main(String args[]) 
   {
       try
       {
           SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance ();
           SOAPConnection connection = scf.createConnection ();
           
           MessageFactory mf = MessageFactory.newInstance ();
           SOAPMessage message = mf.createMessage ();
           
           SOAPPart sp = message.getSOAPPart ();
           SOAPEnvelope envelope = sp.getEnvelope ();
           
           SOAPHeader header = envelope.getHeader ();
           header.detachNode ();
           
           SOAPBody body = envelope.getBody ();
           Name bodyName = envelope.createName  
("GetLastTradePrice", "", "http://wombat.ztrade.com");
           SOAPBodyElement gltp = body.addBodyElement (bodyName);
           
           Name name = envelope.createName ("symbol");
           SOAPElement symbol = gltp.addChildElement (name);
           symbol.addTextNode ("SUNW");
           
           message.writeTo (System.out);
       }
       catch (Exception e)
       {
           System.out.println ("Exception: "+e.getClass ().getName ()+" -
 "+e.getMessage ());
       }
   }

on all versions of Axis I have tried (including 1.1rc2) this code will output:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <GetLastTradePrice xmlns="http://wombat.ztrade.com">
   <symbol xmlns="">SUNW</symbol>
  </GetLastTradePrice>
 </soapenv:Body>
</soapenv:Envelope>

the <symbol> element should not have xmlns="" ?