[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