xom-interest AT lists.ibiblio.org
Subject: XOM API for Processing XML with Java
List archive
Re: [XOM-interest] Small bug in Serializer relating to indentation and preserving whitespace
- From: "Asgeir Frimannsson" <asgeirf AT gmail.com>
- To: elharo AT metalab.unc.edu
- Cc: xom-interest AT lists.ibiblio.org
- Subject: Re: [XOM-interest] Small bug in Serializer relating to indentation and preserving whitespace
- Date: Sun, 21 Oct 2007 09:07:36 +1000
On 10/21/07, Elliotte Harold <elharo AT metalab.unc.edu> wrote:
>
> > Following up on this, here's an additional unit test that catches this
> > bug...
>
> That's quite helpful. I do prefer bug reports in the form of unit tests.
> Unfortunately the mailing list strips attachments. Could you just paste
> the relevant text into an e-mail and send it again? Thanks.
>
Here it is:
Index: SerializerTest.java
===================================================================
RCS file: /cvs/xom/src/nu/xom/tests/SerializerTest.java,v
retrieving revision 1.74
diff -u -r1.74 SerializerTest.java
--- SerializerTest.java 9 Feb 2006 15:12:26 -0000 1.74
+++ SerializerTest.java 20 Oct 2007 06:10:03 -0000
@@ -455,6 +455,29 @@
}
+
+ public void testXMLSpacePreserveWithIndentingAndWhitespaceTextNode()
+ throws IOException {
+
+ root.addAttribute(
+ new Attribute(
+ "xml:space",
+ "http://www.w3.org/XML/1998/namespace",
+ "preserve"));
+ root.appendChild(new Element("sameline"));
+ root.appendChild(new Text(" "));
+ root.appendChild(new Element("sameline2"));
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Serializer serializer = new Serializer(out, "UTF-8");
+ serializer.setIndent(4);
+ serializer.write(doc);
+ String result = out.toString("UTF-8");
+ assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+ + "<root xml:space=\"preserve\"><sameline/>
<sameline2/></root>\r\n",
+ result);
+
+ }
+
public void testXMLSpaceUnspecifiedValueWithIndenting()
throws IOException {
And suggested patch:
Index: Serializer.java
===================================================================
RCS file: /cvs/xom/src/nu/xom/Serializer.java,v
retrieving revision 1.82
diff -u -r1.82 Serializer.java
--- Serializer.java 22 Feb 2006 10:49:21 -0000 1.82
+++ Serializer.java 20 Oct 2007 05:53:01 -0000
@@ -792,7 +792,7 @@
escaper.writeUncheckedMarkup("]]>");
}
// is this boundary whitespace we can ignore?
- else if (isBoundaryWhitespace(text, value)) {
+ else if (isBoundaryWhitespace(text, value) &&
!escaper.isPreserveSpace()) {
return; // without writing node
}
else {
cheers,
asgeir
-
[XOM-interest] Small bug in Serializer relating to indentation and preserving whitespace,
Asgeir Frimannsson, 10/20/2007
-
Re: [XOM-interest] Small bug in Serializer relating to indentation and preserving whitespace,
Asgeir Frimannsson, 10/20/2007
-
Re: [XOM-interest] Small bug in Serializer relating to indentation and preserving whitespace,
Elliotte Harold, 10/20/2007
- Re: [XOM-interest] Small bug in Serializer relating to indentation and preserving whitespace, Asgeir Frimannsson, 10/20/2007
-
Re: [XOM-interest] Small bug in Serializer relating to indentation and preserving whitespace,
Elliotte Harold, 10/20/2007
-
Re: [XOM-interest] Small bug in Serializer relating to indentation and preserving whitespace,
Asgeir Frimannsson, 10/20/2007
Archive powered by MHonArc 2.6.24.