[jboss-svn-commits] JBossWS SVN: r1098 - in branches/jbossws-1.0.3.SP1/src: main/java/org/jboss/ws/soap main/java/org/jboss/ws/utils test/java/org/jboss/test/ws/common/utils

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Sep 29 08:01:03 EDT 2006


Author: thomas.diesler at jboss.com
Date: 2006-09-29 08:00:57 -0400 (Fri, 29 Sep 2006)
New Revision: 1098

Modified:
   branches/jbossws-1.0.3.SP1/src/main/java/org/jboss/ws/soap/DOMEnvelopeBuilder.java
   branches/jbossws-1.0.3.SP1/src/main/java/org/jboss/ws/utils/DOMWriter.java
   branches/jbossws-1.0.3.SP1/src/test/java/org/jboss/test/ws/common/utils/DOMWriterTestCase.java
Log:
Rollback ignore xmlns=''
Fix JBWS-64 

Modified: branches/jbossws-1.0.3.SP1/src/main/java/org/jboss/ws/soap/DOMEnvelopeBuilder.java
===================================================================
--- branches/jbossws-1.0.3.SP1/src/main/java/org/jboss/ws/soap/DOMEnvelopeBuilder.java	2006-09-29 09:43:07 UTC (rev 1097)
+++ branches/jbossws-1.0.3.SP1/src/main/java/org/jboss/ws/soap/DOMEnvelopeBuilder.java	2006-09-29 12:00:57 UTC (rev 1098)
@@ -43,7 +43,6 @@
 import org.jboss.ws.utils.DOMWriter;
 import org.jboss.xb.binding.NamespaceRegistry;
 import org.w3c.dom.Element;
-import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
 /**
@@ -197,27 +196,10 @@
                while (itBodyElement.hasNext())
                {
                   Element srcElement = (Element)itBodyElement.next();
-                  registerNamespacesLocally(srcElement);
 
                   Name name = new NameImpl(srcElement.getLocalName(), srcElement.getPrefix(), srcElement.getNamespaceURI());
                   SOAPContentElement destElement = new SOAPContentElement(name);
                   soapBodyElement.addChildElement(destElement);
-                  // handle SOAPEncoding namespaces
-                  /*NamedNodeMap attribs = srcElement.getAttributes();
-                  for (int i = 0; i < attribs.getLength(); i++)
-                  {
-                     Attr attr = (Attr)attribs.item(i);
-                     if(attr.getNamespaceURI()!=null &&
-                         attr.getNamespaceURI().equals(Constants.URI_SOAP11_ENC)  &&
-                         attr.getValue().indexOf(':') != -1
-                         ) // nested soap11-enc namespaces
-                     {
-                        String nestedPrefix = attr.getValue().substring(0, attr.getValue().indexOf(':'));
-                        String nestedNS = soapBodyElement.getNamespaceURI(nestedPrefix);
-                        if(nestedNS!=null)
-                           soapBodyElement.addNamespaceDeclaration(nestedPrefix, nestedNS);
-                     }
-                  } */
 
                   String xmlFragment = DOMWriter.printNode(srcElement, false);
                   destElement.setXMLFragment(xmlFragment);
@@ -226,7 +208,6 @@
             else if (style == Style.DOCUMENT)
             {
                Element srcElement = (Element)domBodyElement;
-               registerNamespacesLocally(srcElement);
 
                SOAPBodyElementDoc destElement = new SOAPBodyElementDoc(beName);
                destElement = (SOAPBodyElementDoc)soapBody.addChildElement(destElement);
@@ -277,32 +258,6 @@
       return soapEnv;
    }
 
-   /**
-    * Register globally available namespaces on element level.
-    * This is necessary to ensure that each xml fragment is valid.    
-    */
-   private static void registerNamespacesLocally(Element element) {
-
-      redeclareNamespace(element);
-
-      NodeList nlist = element.getChildNodes();
-      for (int i = 0; i < nlist.getLength(); i++)
-      {
-         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
-         element.setAttribute("xmlns:"+element.getPrefix(), element.getNamespaceURI());
-   }
    private void registerNamespaces(NamespaceRegistry namespaceRegistry, SOAPElement soapEl)
    {
       Iterator itNSPrefixes = soapEl.getNamespacePrefixes();

Modified: branches/jbossws-1.0.3.SP1/src/main/java/org/jboss/ws/utils/DOMWriter.java
===================================================================
--- branches/jbossws-1.0.3.SP1/src/main/java/org/jboss/ws/utils/DOMWriter.java	2006-09-29 09:43:07 UTC (rev 1097)
+++ branches/jbossws-1.0.3.SP1/src/main/java/org/jboss/ws/utils/DOMWriter.java	2006-09-29 12:00:57 UTC (rev 1098)
@@ -270,9 +270,7 @@
                   nsMap.put(atPrefix, nsURI);
                }
 
-               // Ignore xmlns=''
-               if ((atName.equals("xmlns") && atValue.equals("")) == false)
-            	   out.print(" " + atName + "='" + atValue + "'");
+               out.print(" " + atName + "='" + atValue + "'");
             }
             
             // Add missing namespace declaration

Modified: branches/jbossws-1.0.3.SP1/src/test/java/org/jboss/test/ws/common/utils/DOMWriterTestCase.java
===================================================================
--- branches/jbossws-1.0.3.SP1/src/test/java/org/jboss/test/ws/common/utils/DOMWriterTestCase.java	2006-09-29 09:43:07 UTC (rev 1097)
+++ branches/jbossws-1.0.3.SP1/src/test/java/org/jboss/test/ws/common/utils/DOMWriterTestCase.java	2006-09-29 12:00:57 UTC (rev 1098)
@@ -102,13 +102,13 @@
    {
       String inStr = 
          "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" +
-         " <env:Body>" +
-         "  <ns1:echoUserTypeResponse xmlns:ns1='http://org.jboss.test.webservice/jbws83'>" +
-         "   <result xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" +
-         "    <my-msg>Kermit</my-msg>" +
-         "   </result>" +
-         "  </ns1:echoUserTypeResponse>" +
-         " </env:Body>" +
+          "<env:Body>" +
+           "<ns1:echoUserTypeResponse xmlns:ns1='http://org.jboss.test.webservice/jbws83'>" +
+            "<result xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" +
+             "<my-msg>Kermit</my-msg>" +
+            "</result>" +
+           "</ns1:echoUserTypeResponse>" +
+          "</env:Body>" +
          "</env:Envelope>";
       
       Element env = DOMUtils.parse(inStr);
@@ -121,7 +121,7 @@
          "<my-msg>Kermit</my-msg>" +
          "</result>";
       
-      String wasStr = DOMWriter.printNode(result, true);
+      String wasStr = DOMWriter.printNode(result, false);
       assertEquals(expStr, wasStr);
    }
    
@@ -177,6 +177,28 @@
       assertEquals(expStr, wasStr);
    }
    
+   /** Test empty namespace declartions
+    */
+   public void testEmptyNamespace() throws Exception
+   {
+      String inStr =
+              "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" +
+               "<env:Body>" +
+                "<publish xmlns='http://org.jboss.test.webservice/jbws64'>" +
+                 "<String_1 xmlns=''>joel</String_1>" +
+                 "<String_2 xmlns=''>secret</String_2>" +
+                 "<String_3 xmlns=''>1</String_3>" +
+                 "<String_4 xmlns=''>6</String_4>" +
+                 "<String_5 xmlns=''>2</String_5>" +
+                "</publish>" +
+               "</env:Body>" +
+              "</env:Envelope>";
+
+      Element env = DOMUtils.parse(inStr);
+      String wasStr = DOMWriter.printNode(env, false);
+      assertEquals(inStr, wasStr);
+   }
+   
    public void testEnvelopeWriter() throws Exception
    {
       String xmlEnv = "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>"




More information about the jboss-svn-commits mailing list