dims        2002/06/18 11:01:25

  Modified:    java/src/org/apache/axis/utils DOM2Writer.java
               java/test/utils TestXMLUtils.java
  Log:
  - Fix for Bug 9963 - DOM2Writer doesn't treat the "xml" namspace specially
  - Added a test case too.
  
  Revision  Changes    Path
  1.9       +3 -1      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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DOM2Writer.java   4 Jun 2002 22:07:59 -0000       1.8
  +++ DOM2Writer.java   18 Jun 2002 18:01:25 -0000      1.9
  @@ -82,6 +82,7 @@
        * 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";;
   
       private static final char NL = '\n';
       private static final char CR = '\r';
  @@ -366,7 +367,8 @@
           String namespaceURI = node.getNamespaceURI();
           String prefix = node.getPrefix();
   
  -        if (!(namespaceURI.equals(NS_URI_XMLNS) && prefix.equals("xmlns")))
  +        if (!(namespaceURI.equals(NS_URI_XMLNS) && prefix.equals("xmlns")) &&
  +            !(namespaceURI.equals(NS_URI_XML) && prefix.equals("xml")))
           {
               if (XMLUtils.getNamespace(prefix, owner) == null)
               {
  
  
  
  1.13      +29 -0     xml-axis/java/test/utils/TestXMLUtils.java
  
  Index: TestXMLUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/utils/TestXMLUtils.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- TestXMLUtils.java 13 Jun 2002 19:44:24 -0000      1.12
  +++ TestXMLUtils.java 18 Jun 2002 18:01:25 -0000      1.13
  @@ -258,4 +258,33 @@
           }
           else return null;
       }
  +
  +    public void testDOM2Writer()
  +    {
  +        StringBuffer sb = new StringBuffer();
  +        sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
  +        sb.append("<xsd:schema targetNamespace=\"http://tempuri.org\"";);
  +        sb.append("            xmlns=\"http://tempuri.org\"";);
  +        sb.append("            xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\";>");
  +        sb.append("  <xsd:annotation>");
  +        sb.append("    <xsd:documentation xml:lang=\"en\">");
  +        sb.append("      Purchase order schema for Example.com.");
  +        sb.append("      Copyright 2000 Example.com. All rights reserved.");
  +        sb.append("    </xsd:documentation>");
  +        sb.append("  </xsd:annotation>");
  +        sb.append("</xsd:schema>");
  +
  +        StringReader strReader = new StringReader(sb.toString());
  +        InputSource inputsrc = new InputSource(strReader);
  +        Document doc = XMLUtils.newDocument(inputsrc);
  +
  +        String output = org.apache.axis.utils.DOM2Writer.nodeToString(doc,false);
  +        assertTrue(output.indexOf("http://www.w3.org/XML/1998/namespace";)==-1);
  +    }
  +
  +    public static void main(String[] args)
  +    {
  +        TestXMLUtils test = new TestXMLUtils("TestXMLUtils");
  +        test.testDOM2Writer();
  +    }
   }
  
  
  


Reply via email to