public void ReadXmlSchema_TableOrder()
{
DataSet ds = new DataSet();
ds.ReadXmlSchema(new StringReader(
@"<?xml version=""1.0"" standalone=""yes""?>
<xs:schema id=""items"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
<xs:element name=""items"" msdata:IsDataSet=""true"" msdata:UseCurrentLocale=""true"">
<xs:complexType>
<xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
<xs:element name=""category"">
<xs:complexType>
<xs:sequence>
<xs:element name=""id"" type=""xs:string"" />
<xs:element name=""visible"" type=""xs:string"" />
<xs:element name=""title"" type=""xs:string"" />
<xs:element name=""description"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""imageUrl"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""imageAltText"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""parentCategoryId"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""childItemId"" nillable=""true"" minOccurs=""0"" maxOccurs=""unbounded"">
<xs:complexType>
<xs:simpleContent msdata:ColumnName=""childItemId_Text"" msdata:Ordinal=""0"">
<xs:extension base=""xs:string"">
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name=""item"">
<xs:complexType>
<xs:sequence>
<xs:element name=""id"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""visible"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""title"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""description"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""price"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""inStock"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""imageUrl"" type=""xs:string"" minOccurs=""0"" />
<xs:element name=""imageAltText"" type=""xs:string"" minOccurs=""0"" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>"));
Assert.Equal("category", ds.Tables[0].TableName);
Assert.Equal("childItemId", ds.Tables[1].TableName);
Assert.Equal("item", ds.Tables[2].TableName);
}