diff --git a/exist-core/src/main/java/org/exist/util/serializer/IndentingXMLWriter.java b/exist-core/src/main/java/org/exist/util/serializer/IndentingXMLWriter.java
index 12a09abe46e..79f3152de8c 100644
--- a/exist-core/src/main/java/org/exist/util/serializer/IndentingXMLWriter.java
+++ b/exist-core/src/main/java/org/exist/util/serializer/IndentingXMLWriter.java
@@ -151,7 +151,7 @@ public void endDocument() throws TransformerException {
@Override
public void endDocumentType() throws TransformerException {
super.endDocumentType();
- super.characters("\n");
+ indent();
sameline = false;
}
@@ -197,11 +197,7 @@ protected void pushWhitespacePreserve(final CharSequence value) {
protected void popWhitespacePreserve() {
if (!whitespacePreserveStack.isEmpty() && Math.abs(whitespacePreserveStack.peek()) > level) {
whitespacePreserveStack.pop();
- if (whitespacePreserveStack.isEmpty() || whitespacePreserveStack.peek() >= 0) {
- whitespacePreserve = false;
- } else {
- whitespacePreserve = true;
- }
+ whitespacePreserve = !whitespacePreserveStack.isEmpty() && whitespacePreserveStack.peek() < 0;
}
}
diff --git a/exist-core/src/test/java/org/exist/util/serializer/HTML5WriterTest.java b/exist-core/src/test/java/org/exist/util/serializer/HTML5WriterTest.java
index fc061031b91..a2bc2097f23 100644
--- a/exist-core/src/test/java/org/exist/util/serializer/HTML5WriterTest.java
+++ b/exist-core/src/test/java/org/exist/util/serializer/HTML5WriterTest.java
@@ -42,7 +42,7 @@ public void setUp() throws Exception {
@Test
public void testAttributeWithBooleanValue() throws Exception {
- final String expected = "\n";
+ final String expected = "";
final QName elQName = new QName("input");
writer.startElement(elQName);
writer.attribute("checked", "checked");
@@ -54,7 +54,7 @@ public void testAttributeWithBooleanValue() throws Exception {
@Test
public void testAttributeWithNonBooleanValue() throws Exception {
- final String expected = "\n";
+ final String expected = "";
final QName elQName = new QName("input");
writer.startElement(elQName);
writer.attribute("name", "name");
@@ -66,7 +66,7 @@ public void testAttributeWithNonBooleanValue() throws Exception {
@Test
public void testAttributeQNameWithBooleanValue() throws Exception {
- final String expected = "\n";
+ final String expected = "";
final QName elQName = new QName("input");
final QName attrQName = new QName("checked");
writer.startElement(elQName);
@@ -79,7 +79,7 @@ public void testAttributeQNameWithBooleanValue() throws Exception {
@Test
public void testAttributeQNameWithNonBooleanValue() throws Exception {
- final String expected = "\n";
+ final String expected = "";
final QName elQName = new QName("input");
final QName attrQName = new QName("name");
writer.startElement(elQName);
diff --git a/exist-core/src/test/java/org/exist/xmldb/SerializationTest.java b/exist-core/src/test/java/org/exist/xmldb/SerializationTest.java
index b4de05229db..e087e8f7d77 100644
--- a/exist-core/src/test/java/org/exist/xmldb/SerializationTest.java
+++ b/exist-core/src/test/java/org/exist/xmldb/SerializationTest.java
@@ -43,10 +43,12 @@
import org.xmlunit.builder.Input;
import org.xmlunit.diff.Diff;
+import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import java.util.Arrays;
+import static javax.xml.transform.OutputKeys.INDENT;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -93,8 +95,11 @@ public class SerializationTest {
private static final XmldbURI TEST_XML_DOC_WITH_DOCTYPE_URI = XmldbURI.create("test-with-doctype.xml");
private static final String XML_WITH_DOCTYPE =
- "\n" +
- "";
+ """
+
+
+ The Title
+ """;
private static final XmldbURI TEST_XML_DOC_WITH_XMLDECL_URI = XmldbURI.create("test-with-xmldecl.xml");
@@ -118,7 +123,7 @@ public static java.util.Collection