diff --git a/ser/XmlFormatter2.cs b/ser/XmlFormatter2.cs index d960bc6..93b194a 100644 --- a/ser/XmlFormatter2.cs +++ b/ser/XmlFormatter2.cs @@ -1139,12 +1139,21 @@ namespace lib if( typeCode != TypeCode.Object ) { - if( _cfg.POD == POD.Elements || forceType ) + bool writeELements = _cfg.POD == POD.Elements || forceType; + + if( !writeELements && writer is XmlTextWriter textWriter ) + { + var writeState = textWriter.WriteState; + + writeELements = writeState != WriteState.Element; + } + + if( writeELements ) writer.WriteStartElement( name ); SerializeConcrete( writer, mi, root, name, forceType ); - if( _cfg.POD == POD.Elements || forceType ) + if( writeELements ) writer.WriteEndElement(); return;