diff --git a/xml/src/main/java/org/springframework/xml/dom/DomContentHandler.java b/xml/src/main/java/org/springframework/xml/dom/DomContentHandler.java index 10faa5cb..6c65f88a 100644 --- a/xml/src/main/java/org/springframework/xml/dom/DomContentHandler.java +++ b/xml/src/main/java/org/springframework/xml/dom/DomContentHandler.java @@ -19,7 +19,6 @@ package org.springframework.xml.dom; import java.util.ArrayList; import java.util.List; -import org.springframework.util.Assert; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -29,6 +28,8 @@ import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; +import org.springframework.util.Assert; + /** * SAX ContentHandler that transforms callback calls to DOM Nodes. * @@ -100,7 +101,9 @@ public class DomContentHandler extends DefaultHandler { String attrUri = attributes.getURI(i); String attrQname = attributes.getQName(i); String value = attributes.getValue(i); - element.setAttributeNS(attrUri, attrQname, value); + if (!attrQname.startsWith("xmlns")) { + element.setAttributeNS(attrUri, attrQname, value); + } } parent.appendChild(element); elements.add(element); diff --git a/xml/src/test/java/org/springframework/xml/dom/DomContentHandlerTest.java b/xml/src/test/java/org/springframework/xml/dom/DomContentHandlerTest.java index 2b408f6d..3fbdc7bb 100644 --- a/xml/src/test/java/org/springframework/xml/dom/DomContentHandlerTest.java +++ b/xml/src/test/java/org/springframework/xml/dom/DomContentHandlerTest.java @@ -56,7 +56,7 @@ public class DomContentHandlerTest extends XMLTestCase { documentBuilderFactory.setNamespaceAware(true); documentBuilder = documentBuilderFactory.newDocumentBuilder(); result = documentBuilder.newDocument(); - xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", false); + xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); } public void testContentHandlerDocument() throws Exception {