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();
+ }
}