title: .net XmlSerialize throws "WriteStartDocument cannot be called on writers created with ConformanceLevel.Fragment"
body: <p>Am trying to serialize a class, writing to an XML file as multiple fragments, i.e, write each object of the class as an individual fragment, without the XML header/root. Below is a sample code:</p>
  
  <pre><code>[Serializable]
  public class Test
  {
      public int X { get; set; }
      public String Y { get; set; }
      public String[] Z { get; set; }
  
      public Test()
      {
      }
  
      public Test(int x, String y, String[] z)
      {
          X = x;
          Y = y;
          Z = z;
      }
  }
  
  class Program
  {
      static void Main(string[] args)
      {
          Test t1 = new Test(1, "t1", new[] { "a", "b" });
          Test t2 = new Test(2, "t2", new[] { "c", "d", "e" });
  
          XmlSerializer serializer = new XmlSerializer(typeof(Test));
          //using (StreamWriter writer = new StreamWriter(@"f:\test\test.xml"))
          {
              XmlWriter xmlWriter = XmlWriter.Create(@"f:\test\test.xml",
                                                     new XmlWriterSettings()
                                                         {ConformanceLevel = ConformanceLevel.Fragment,
                                                          OmitXmlDeclaration = true,
                                                          Indent = true});
              serializer.Serialize(xmlWriter, t1);
              serializer.Serialize(xmlWriter, t2);
              xmlWriter.Close();
          }
      }
  }
  </code></pre>
  
  <p>In the first call to serialize, I get the exception:</p>
  
  <pre><code>WriteStartDocument cannot be called on writers created with ConformanceLevel.Fragment
  </code></pre>
  
  <p>What am I missing here?</p>