title: DataSet loses deep structure when elements have same name
body: <p>I have an Xml file that contains multiple levels of  layers, for example:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;TestSet&gt;
    &lt;Test&gt;
      &lt;Test&gt;
        &lt;Step/&gt;
      &lt;Test&gt;
      &lt;Test&gt;
        &lt;Step/&gt;
      &lt;/Test&gt;
    &lt;/Test&gt;
  &lt;/TestSet&gt;
  </code></pre>
  
  <p>As you can see there are two tests embedded within another test. When I read this into a DataSet I expect 4 tables, one table for each level of embedding.</p>
  
  <pre><code>DataSet.Table[0].Rows.Count == 1   // TestSet
  DataSet.Table[1].Rows.Count == 1   // High level Test
  DataSet.Table[2].Rows.Count == 2   // Low level Test
  DataSet.Table[3].Rows.Count == 2   // Step
  </code></pre>
  
  <p>I am parsing the file using XmlReader like so:</p>
  
  <pre><code>XmlReader xmlFile;
  xmlFile = XmlReader.Create(file, new XmlReaderSettings());
  DataSet data = new DataSet();
  data.ReadXml(xmlFile);
  </code></pre>
  
  <p>Instead when I use XmlReader I get:</p>
  
  <pre><code>DataSet.Table[0].Rows.Count == 3   // All of the Test items, High and Low level
  DataSet.Table[1].Rows.Count == 2   // Step
  </code></pre>
  
  <p>Two problems, why does it skip over my TestSet level, and why does it combine my Test items into one table, despite being different levels.</p>
  
  <p>Is there another reader I should use that would maintain the integrity of my data, or are there specific settings for XmlReader that would solve these issues, or am I better off reading in and parsing the file myself?</p>