2003-03-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
authorAtsushi Eno <atsushieno@gmail.com>
Tue, 18 Mar 2003 19:45:40 +0000 (19:45 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Tue, 18 Mar 2003 19:45:40 +0000 (19:45 -0000)
* XmlSerializer.cs : Serialize() don't write xmldecl when WriteState is
  not WriteState.Start, and never call WriteEndDocument().

svn path=/trunk/mcs/; revision=12662

mcs/class/System.XML/System.Xml.Serialization/ChangeLog
mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs

index 1a17c47d52878239e5c96c902d56bd2fe0356ff0..69888b08fddcafb3bfe748688b489fd3a30f717a 100755 (executable)
@@ -1,3 +1,8 @@
+2003-03-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+       * XmlSerializer.cs : Serialize() don't write xmldecl when WriteState is
+         not WriteState.Start, and never call WriteEndDocument().
+
 2003-03-12  Elan Feingold <efeingold@mn.rr.com>
 
        * XmlCustomFormatter.cs: Correct signature, Implement
index 2109530acf022cf6de8c8050a9f92b8d7531ee8c..d0261e97c6b2ba0e980dbc5d61af7ba7b12758a8 100644 (file)
@@ -430,9 +430,12 @@ namespace System.Xml.Serialization {
 
                        if (IsInbuiltType(objType)) 
                        {
-                               writer.WriteStartDocument ();
+                               if (writer.WriteState == WriteState.Start)
+                                        writer.WriteStartDocument ();
                                SerializeBuiltIn (writer, o);
-                               writer.WriteEndDocument();
+                               // Keep WriteState.Content state.
+                               // writer.WriteEndDocument();
+                               writer.Flush ();
                                return;
                        }
 
@@ -451,7 +454,8 @@ namespace System.Xml.Serialization {
                        XmlSerializerNamespaces nss = new XmlSerializerNamespaces ();
                        XmlQualifiedName[] qnames;
                        
-                       writer.WriteStartDocument ();
+                       if (writer.WriteState == WriteState.Start)
+                               writer.WriteStartDocument ();
                        object [] memberObj = (object []) typeTable [objType];
                        if (memberObj == null)
                                throw new Exception ("Unknown Type " + objType +
@@ -512,7 +516,9 @@ namespace System.Xml.Serialization {
 
                        SerializeMembers (writer, o, true);//, namespaces);
 
-                       writer.WriteEndDocument ();
+                       // Keep WriteState.Content state.
+                       // writer.WriteEndDocument ();
+                       writer.Flush ();
                }
 
                private void SerializeBuiltIn (XmlWriter writer, object o)