diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializer.cs b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializer.cs
index 049836211d7522..ef651ced4054b1 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializer.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializer.cs
@@ -317,7 +317,7 @@ public void Serialize(TextWriter textWriter, object? o)
[RequiresUnreferencedCode(TrimSerializationWarning)]
public void Serialize(TextWriter textWriter, object? o, XmlSerializerNamespaces? namespaces)
{
- XmlWriter xmlWriter = XmlWriter.Create(textWriter, new XmlWriterSettings() { Indent = true });
+ XmlWriter xmlWriter = XmlWriter.Create(textWriter);
Serialize(xmlWriter, o, namespaces);
}
@@ -330,7 +330,7 @@ public void Serialize(Stream stream, object? o)
[RequiresUnreferencedCode(TrimSerializationWarning)]
public void Serialize(Stream stream, object? o, XmlSerializerNamespaces? namespaces)
{
- XmlWriter xmlWriter = XmlWriter.Create(stream, new XmlWriterSettings() { Indent = true });
+ XmlWriter xmlWriter = XmlWriter.Create(stream);
Serialize(xmlWriter, o, namespaces);
}
diff --git a/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.RuntimeOnly.cs b/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.RuntimeOnly.cs
index c81f2df09c161c..b12703d60936c6 100644
--- a/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.RuntimeOnly.cs
+++ b/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.RuntimeOnly.cs
@@ -502,6 +502,21 @@ public static void Xml_WithXElementWithNestedXElement()
VerifyXElementObject((XElement)original.e1.FirstNode, (XElement)actual.e1.FirstNode);
}
+ [Fact]
+ public static void Xml_WithXElementWithEmptyNestedElement()
+ {
+ var original = new WithXmlElement(true);
+ original.xml.InnerXml = "";
+
+ MemoryStream ms = new MemoryStream();
+ new XmlSerializer(typeof(WithXmlElement)).Serialize(ms, original);
+
+ ms.Position = 0;
+ StreamReader sr = new StreamReader(ms);
+ string output = sr.ReadToEnd();
+ Assert.Contains("", output); // Self-closed, or completely empty is OK. No added space.
+ }
+
[Fact]
public static void Xml_WithArrayOfXElement()
{
diff --git a/src/libraries/System.Runtime.Serialization.Xml/tests/SerializationTypes.RuntimeOnly.cs b/src/libraries/System.Runtime.Serialization.Xml/tests/SerializationTypes.RuntimeOnly.cs
index a7cc9748babd0f..95d51d43c89197 100644
--- a/src/libraries/System.Runtime.Serialization.Xml/tests/SerializationTypes.RuntimeOnly.cs
+++ b/src/libraries/System.Runtime.Serialization.Xml/tests/SerializationTypes.RuntimeOnly.cs
@@ -767,6 +767,19 @@ public WithXElement(bool init)
}
}
+ public class WithXmlElement
+ {
+ public XmlElement xml;
+
+ public WithXmlElement() { }
+
+ public WithXmlElement(bool init)
+ {
+ var doc = new XmlDocument();
+ xml = doc.CreateElement("Element1");
+ }
+ }
+
public class WithXElementWithNestedXElement
{
public XElement e1;