title: Deserialize XML to object (need to return a list of objects)
body: <p>Started practicing with XML and C# and I have an error message of "There is an error in XML document (3,2)". After looking at the file, I can't see anything wrong with it (Mind you, I probably missed something since I'm a noob). I'm using a Console Application for C# right now. I'm trying to return a list of Adventurers and just a side note, the GEAR element is optional. Here is what I have so far:</p>
  
  <p><strong>XML File - Test1</strong></p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;Catalog&gt;
      &lt;Adventurer&gt;
          &lt;ID&gt;001&lt;/ID&gt;
          &lt;Name&gt;John Smith&lt;/Name&gt;
          &lt;Address&gt;123 Fake Street&lt;/Address&gt;
          &lt;Phone&gt;123-456-7890&lt;/Phone&gt;
          &lt;Gear&gt;
              &lt;Attack&gt;
                  &lt;Item&gt;
                      &lt;IName&gt;Sword&lt;/IName&gt;
                      &lt;IPrice&gt;15.00&lt;/IPrice&gt;
                  &lt;/Item&gt; 
                  &lt;Item&gt;
                      &lt;IName&gt;Wand&lt;/IName&gt;
                      &lt;IPrice&gt;20.00&lt;/IPrice&gt;
                  &lt;/Item&gt;         
              &lt;/Attack&gt;
              &lt;Defense&gt;
                  &lt;Item&gt;
                      &lt;IName&gt;Shield&lt;/IName&gt;
                      &lt;IPrice&gt;5.00&lt;/IPrice&gt;
                  &lt;/Item&gt;
          &lt;/Defense&gt;  
          &lt;/Gear&gt;
      &lt;/Adventurer&gt;
      &lt;Adventurer&gt;
          &lt;ID&gt;002&lt;/ID&gt;
          &lt;Name&gt;Guy noone likes&lt;/Name&gt;
          &lt;Address&gt;Some Big House&lt;/Address&gt;
          &lt;Phone&gt;666-666-6666&lt;/Phone&gt;
          &lt;Gear&gt;&lt;/Gear&gt;
      &lt;/Adventurer&gt;
  &lt;/Catalog&gt;
  </code></pre>
  
  <p><strong>C# Classes</strong></p>
  
  <pre><code>public class Catalog
  {
      List&lt;Adventurer&gt; Adventurers { get; set; }
  }
  
  public class Adventurer
  {
      public int ID { get; set; }
      public string Name { get; set; }
      public string Address { get; set; }
      public string Phone { get; set; }
      public Gear Gear { get; set; }
  }
  
  public class Gear
  {
      public List&lt;Item&gt; Attack { get; set; }
      public List&lt;Item&gt; Defense { get; set; }
  }
  
  public class Item
  {
      public string IName { get; set; }
      public decimal IPrice { get; set; }
  }
  </code></pre>
  
  <p><strong>Serialize Function</strong> - Where the Problem Occurs at Line 5</p>
  
  <pre><code>Catalog obj = null;
  string path = @"C:\Users\Blah\Desktop\test1.xml";
  XmlSerializer serializer = new XmlSerializer(typeof(Catalog));
  StreamReader reader = new StreamReader(path);
  obj = (Catalog)serializer.Deserialize(reader);
  reader.Close();
  
  Console.ReadLine();
  </code></pre>