From cc6786e6a60a3432bd3e5db472939b21879251ce Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Tue, 20 Dec 2005 04:50:14 +0000 Subject: [PATCH] better deal with elements that don't have a namespace URI git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@357908 13f79535-47bb-0310-9956-ffa450edef68 --- .../tools/ant/util/DOMElementWriter.java | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/main/org/apache/tools/ant/util/DOMElementWriter.java b/src/main/org/apache/tools/ant/util/DOMElementWriter.java index 786ac6dd4..a7b6d6718 100644 --- a/src/main/org/apache/tools/ant/util/DOMElementWriter.java +++ b/src/main/org/apache/tools/ant/util/DOMElementWriter.java @@ -33,6 +33,7 @@ import org.w3c.dom.Text; /** * Writes a DOM tree to a given Writer. + * warning: this utility currently does not declare XML Namespaces. *

Utility class used by {@link org.apache.tools.ant.XmlLogger * XmlLogger} and * org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter @@ -278,7 +279,8 @@ public class DOMElementWriter { // Write element out.write("<"); if (namespacePolicy.qualifyElements) { - String prefix = (String) nsPrefixMap.get(element.getNamespaceURI()); + String uri = getNamespaceURI(element); + String prefix = (String) nsPrefixMap.get(uri); if (prefix == null) { if (nsPrefixMap.isEmpty()) { // steal default namespace @@ -286,8 +288,8 @@ public class DOMElementWriter { } else { prefix = NS + (nextPrefix++); } - nsPrefixMap.put(element.getNamespaceURI(), prefix); - addNSDefinition(element, element.getNamespaceURI()); + nsPrefixMap.put(uri, prefix); + addNSDefinition(element, uri); } if (!"".equals(prefix)) { out.write(prefix); @@ -302,12 +304,12 @@ public class DOMElementWriter { Attr attr = (Attr) attrs.item(i); out.write(" "); if (namespacePolicy.qualifyAttributes) { - String prefix = - (String) nsPrefixMap.get(attr.getNamespaceURI()); + String uri = getNamespaceURI(attr); + String prefix = (String) nsPrefixMap.get(uri); if (prefix == null) { prefix = NS + (nextPrefix++); - nsPrefixMap.put(attr.getNamespaceURI(), prefix); - addNSDefinition(element, attr.getNamespaceURI()); + nsPrefixMap.put(uri, prefix); + addNSDefinition(element, uri); } out.write(prefix); out.write(":"); @@ -370,10 +372,9 @@ public class DOMElementWriter { // Write element close out.write("