[jboss-svn-commits] JBossWS SVN: r883 - branches/jbossws-1.0/src/main/java/org/jboss/ws/soap

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Sep 1 07:23:48 EDT 2006


Author: heiko.braun at jboss.com
Date: 2006-09-01 07:23:45 -0400 (Fri, 01 Sep 2006)
New Revision: 883

Modified:
   branches/jbossws-1.0/src/main/java/org/jboss/ws/soap/DOMEnvelopeBuilder.java
Log:
Fix JBWS-1166

Modified: branches/jbossws-1.0/src/main/java/org/jboss/ws/soap/DOMEnvelopeBuilder.java
===================================================================
--- branches/jbossws-1.0/src/main/java/org/jboss/ws/soap/DOMEnvelopeBuilder.java	2006-09-01 11:14:55 UTC (rev 882)
+++ branches/jbossws-1.0/src/main/java/org/jboss/ws/soap/DOMEnvelopeBuilder.java	2006-09-01 11:23:45 UTC (rev 883)
@@ -1,6 +1,7 @@
 package org.jboss.ws.soap;
 
 import org.w3c.dom.*;
+import org.w3c.dom.Node;
 import org.jboss.util.xml.DOMUtils;
 import org.jboss.util.xml.DOMWriter;
 import org.jboss.xb.binding.NamespaceRegistry;
@@ -248,16 +249,29 @@
     * Register globally available namespaces on element level.
     * This is necessary to ensure that each xml fragment is valid.    
     */
-   private void registerNamespacesLocally(Element srcElement) {
-      if(srcElement.getPrefix()== null)
+   private static void registerNamespacesLocally(Element element) {
+
+      redeclareNamespace(element);
+
+      NodeList nlist = element.getChildNodes();
+      for (int i = 0; i < nlist.getLength(); i++)
       {
-         srcElement.setAttribute("xmlns", srcElement.getNamespaceURI());
+         Node childNode = nlist.item(i);
+         if (childNode.getNodeType() == Node.ELEMENT_NODE)
+         {
+            registerNamespacesLocally((Element)childNode);
+         }
       }
+   }
+
+   private static void redeclareNamespace(Element element)
+   {
+      if(element.getPrefix()== null)
+         element.setAttribute("xmlns", element.getNamespaceURI());
       else
-      {
-         srcElement.setAttribute("xmlns:"+srcElement.getPrefix(), srcElement.getNamespaceURI());
-      }
+         element.setAttribute("xmlns:"+element.getPrefix(), element.getNamespaceURI());
    }
+
    private void registerNamespaces(NamespaceRegistry namespaceRegistry, SOAPElement soapEl)
    {
       Iterator itNSPrefixes = soapEl.getNamespacePrefixes();




More information about the jboss-svn-commits mailing list