Author: berndf Date: Wed Apr 28 11:24:22 2010 New Revision: 938927 URL: http://svn.apache.org/viewvc?rev=938927&view=rev Log: fix rendering: do not print empty namespaces, e.g. xmlns='', because that causes major irritations with clients
Modified: mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/fragment/Renderer.java mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/fragment/RendererTestCase.java Modified: mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/fragment/Renderer.java URL: http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/fragment/Renderer.java?rev=938927&r1=938926&r2=938927&view=diff ============================================================================== --- mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/fragment/Renderer.java (original) +++ mina/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/fragment/Renderer.java Wed Apr 28 11:24:22 2010 @@ -70,12 +70,15 @@ public class Renderer { for(Entry<String, String> nsAttr : nsAttrs.entrySet()) { openElementBuffer.append(" "); String name; - if(nsAttr.getKey().length() == 0) { + String value = nsAttr.getValue(); + if(value == null || value.length() == 0) { + continue; // don't issue "xmlns=''", this will only confuse clients + } else if(nsAttr.getKey().length() == 0) { name = "xmlns"; } else { name = "xmlns:" + nsAttr.getKey(); } - renderAttribute(openElementBuffer, name, nsAttr.getValue()); + renderAttribute(openElementBuffer, name, value); } for (Attribute attribute : element.getAttributes()) { Modified: mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/fragment/RendererTestCase.java URL: http://svn.apache.org/viewvc/mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/fragment/RendererTestCase.java?rev=938927&r1=938926&r2=938927&view=diff ============================================================================== --- mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/fragment/RendererTestCase.java (original) +++ mina/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/fragment/RendererTestCase.java Wed Apr 28 11:24:22 2010 @@ -153,7 +153,7 @@ public class RendererTestCase extends Te public void testRenderInnerNoNamespaceElement() { XMLElementBuilder builder = new XMLElementBuilder("foo", "http://example.com"); builder.startInnerElement("bar"); - assertRendering("<foo xmlns=\"http://example.com\"><bar xmlns=\"\"></bar></foo>", builder.build()); + assertRendering("<foo xmlns=\"http://example.com\"><bar ></bar></foo>", builder.build()); } public void testRenderSimpleText() {