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;