public void InferXmlSchema_BasicXml()
{
StringBuilder sb = new StringBuilder();
sb.Append("<NewDataSet xmlns:od='urn:schemas-microsoft-com:officedata'>");
sb.Append("<Categories>");
sb.Append("<CategoryID od:adotype='3'>1</CategoryID>");
sb.Append("<CategoryName od:maxLength='15' od:adotype='130'>Beverages</CategoryName>");
sb.Append("<Description od:adotype='203'>Soft drinks and teas</Description>");
sb.Append("</Categories>");
sb.Append("<Products>");
sb.Append("<ProductID od:adotype='20'>1</ProductID>");
sb.Append("<ReorderLevel od:adotype='3'>10</ReorderLevel>");
sb.Append("<Discontinued od:adotype='11'>0</Discontinued>");
sb.Append("</Products>");
sb.Append("</NewDataSet>");
MemoryStream myStream = new MemoryStream(new ASCIIEncoding().GetBytes(sb.ToString()));
var ds = new DataSet();
// ds.ReadXml(myStream);
ds.InferXmlSchema(myStream, new string[] { "urn:schemas-microsoft-com:officedata" });
Assert.Equal(2, ds.Tables.Count);
Assert.Equal("CategoryID", ds.Tables[0].Columns[0].ColumnName);
Assert.Equal("CategoryName", ds.Tables[0].Columns[1].ColumnName);
Assert.Equal("Description", ds.Tables[0].Columns[2].ColumnName);
Assert.Equal("ProductID", ds.Tables[1].Columns[0].ColumnName);
Assert.Equal("ReorderLevel", ds.Tables[1].Columns[1].ColumnName);
Assert.Equal("Discontinued", ds.Tables[1].Columns[2].ColumnName);
}