diff --git a/src/main/scala/scala/xml/NamespaceBinding.scala b/src/main/scala/scala/xml/NamespaceBinding.scala
index 8409c41e1..b5650500d 100644
--- a/src/main/scala/scala/xml/NamespaceBinding.scala
+++ b/src/main/scala/scala/xml/NamespaceBinding.scala
@@ -72,7 +72,7 @@ case class NamespaceBinding(prefix: String, uri: String, parent: NamespaceBindin
shadowRedefined(stop).doBuildString(sb, stop)
}
- private def doBuildString(sb: StringBuilder, stop: NamespaceBinding) {
+ protected def doBuildString(sb: StringBuilder, stop: NamespaceBinding) {
if ((this == null) || (this eq stop)) return // contains?
val s = " xmlns%s=\"%s\"".format(
diff --git a/src/main/scala/scala/xml/TopScope.scala b/src/main/scala/scala/xml/TopScope.scala
index 53d4b2c5d..a467a5a37 100644
--- a/src/main/scala/scala/xml/TopScope.scala
+++ b/src/main/scala/scala/xml/TopScope.scala
@@ -28,4 +28,5 @@ object TopScope extends NamespaceBinding(null, null, null) {
override def buildString(stop: NamespaceBinding) = ""
override def buildString(sb: StringBuilder, ignore: NamespaceBinding) = {}
+ override protected def doBuildString(sb: StringBuilder, stop: NamespaceBinding) = {}
}
diff --git a/src/test/scala/scala/xml/XMLTest.scala b/src/test/scala/scala/xml/XMLTest.scala
index 01431baf1..7b22cefb6 100644
--- a/src/test/scala/scala/xml/XMLTest.scala
+++ b/src/test/scala/scala/xml/XMLTest.scala
@@ -160,6 +160,23 @@ class XMLTest {
for (n <- cuckoo \ "_") {
assertEquals("http://cuckoo.com", n.namespace)
}
+ val actual: String = new scala.xml.PrettyPrinter(80, 5).format(cuckoo)
+ val expected = """|
+ |
+ |
+ |""".stripMargin
+ assertEquals(expected, actual)
+ }
+
+ @UnitTest
+ def namespacesWithNestedXmls: Unit = {
+ val foo =
+ val bar = {foo}
+ val actual: String = new scala.xml.PrettyPrinter(80, 5).format(bar)
+ val expected = """|
+ |
+ |""".stripMargin
+ assertEquals(expected, actual)
}
@UnitTest