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() {