dims        2003/07/02 13:51:28

  Modified:    java/src/org/apache/axis/utils DOM2Writer.java
               java/src/org/apache/axis/encoding
                        SerializationContextImpl.java
  Log:
  Fix for Bug 21267 - deserialization adds 'xmlns:xml' namespace declaration to element
  
  Revision  Changes    Path
  1.16      +3 -8      xml-axis/java/src/org/apache/axis/utils/DOM2Writer.java
  
  Index: DOM2Writer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/DOM2Writer.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- DOM2Writer.java   23 May 2003 06:44:24 -0000      1.15
  +++ DOM2Writer.java   2 Jul 2003 20:51:28 -0000       1.16
  @@ -62,6 +62,7 @@
   import org.w3c.dom.NamedNodeMap;
   import org.w3c.dom.Node;
   import org.w3c.dom.NodeList;
  +import org.apache.axis.Constants;
   
   import java.io.PrintWriter;
   import java.io.StringWriter;
  @@ -80,12 +81,6 @@
   public class DOM2Writer
   {
       /**
  -     * The namespaceURI represented by the prefix <code>xmlns</code>.
  -     */
  -    private static String NS_URI_XMLNS = "http://www.w3.org/2000/xmlns/";;
  -    private static String NS_URI_XML = "http://www.w3.org/XML/1998/namespace";;
  -
  -    /**
        * Return a string containing this node serialized as XML.
        */
       public static String nodeToString(Node node, boolean omitXMLDecl)
  @@ -360,8 +355,8 @@
           String namespaceURI = node.getNamespaceURI();
           String prefix = node.getPrefix();
   
  -        if (!(namespaceURI.equals(NS_URI_XMLNS) && prefix.equals("xmlns")) &&
  -            !(namespaceURI.equals(NS_URI_XML) && prefix.equals("xml")))
  +        if (!(namespaceURI.equals(Constants.NS_URI_XMLNS) && 
prefix.equals("xmlns")) &&
  +            !(namespaceURI.equals(Constants.NS_URI_XML) && prefix.equals("xml")))
           {
               if (XMLUtils.getNamespace(prefix, owner) == null)
               {
  
  
  
  1.95      +15 -11    
xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java
  
  Index: SerializationContextImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java,v
  retrieving revision 1.94
  retrieving revision 1.95
  diff -u -r1.94 -r1.95
  --- SerializationContextImpl.java     30 Jun 2003 18:25:06 -0000      1.94
  +++ SerializationContextImpl.java     2 Jul 2003 20:51:28 -0000       1.95
  @@ -969,17 +969,21 @@
               nsStack.push();
           } else {
               for (Mapping map=nsStack.topOfFrame(); map!=null; map=nsStack.next()) {
  -                StringBuffer sb = new StringBuffer("xmlns");
  -                if (map.getPrefix().length() > 0) {
  -                    sb.append(':');
  -                    sb.append(map.getPrefix());
  -                }
  -                if ((vecQNames==null) || (vecQNames.indexOf(sb.toString())==-1)) {
  -                    writer.write(' ');
  -                    sb.append("=\"");
  -                    sb.append(map.getNamespaceURI());
  -                    sb.append('"');
  -                    writer.write(sb.toString());
  +                if (!(map.getNamespaceURI().equals(Constants.NS_URI_XMLNS) && 
map.getPrefix().equals("xmlns")) &&
  +                    !(map.getNamespaceURI().equals(Constants.NS_URI_XML) && 
map.getPrefix().equals("xml")))
  +                {                
  +                    StringBuffer sb = new StringBuffer("xmlns");
  +                    if (map.getPrefix().length() > 0) {
  +                        sb.append(':');
  +                        sb.append(map.getPrefix());
  +                    }
  +                    if ((vecQNames==null) || 
(vecQNames.indexOf(sb.toString())==-1)) {
  +                        writer.write(' ');
  +                        sb.append("=\"");
  +                        sb.append(map.getNamespaceURI());
  +                        sb.append('"');
  +                        writer.write(sb.toString());
  +                    }
                   }
               }
   
  
  
  

Reply via email to