From 596f18335ee24b037c12741ae61fdbc58d8cd219 Mon Sep 17 00:00:00 2001 From: "Aaron S. Hawley" Date: Tue, 27 Jan 2015 22:08:01 -0500 Subject: [PATCH] Nested XML adds empty xmlns attribute #45 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * src/test/scala/scala/xml/XMLTest.scala (namespacesWithNestedXmls): Modified test case by Muntis Grūbe. * src/main/scala/scala/xml/NamespaceBinding.scala (doBuildString): Add TopScope as a value to avoid building the namespace attribute string. --- src/main/scala/scala/xml/NamespaceBinding.scala | 2 +- src/test/scala/scala/xml/XMLTest.scala | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/scala/scala/xml/NamespaceBinding.scala b/src/main/scala/scala/xml/NamespaceBinding.scala index 8409c41e1..cb97c1d06 100644 --- a/src/main/scala/scala/xml/NamespaceBinding.scala +++ b/src/main/scala/scala/xml/NamespaceBinding.scala @@ -73,7 +73,7 @@ case class NamespaceBinding(prefix: String, uri: String, parent: NamespaceBindin } private def doBuildString(sb: StringBuilder, stop: NamespaceBinding) { - if ((this == null) || (this eq stop)) return // contains? + if (List(null, stop, TopScope).contains(this)) return val s = " xmlns%s=\"%s\"".format( (if (prefix != null) ":" + prefix else ""), diff --git a/src/test/scala/scala/xml/XMLTest.scala b/src/test/scala/scala/xml/XMLTest.scala index 01431baf1..ff59de52b 100644 --- a/src/test/scala/scala/xml/XMLTest.scala +++ b/src/test/scala/scala/xml/XMLTest.scala @@ -162,6 +162,15 @@ class XMLTest { } } + @UnitTest + def namespacesWithNestedXmls: Unit = { + val foo = + val bar = {foo} + val expected = """""" + val actual = bar.toString + assertEquals(expected, actual) + } + @UnitTest def validationOfElements: Unit = { val vtor = new scala.xml.dtd.ElementValidator();