public void DataSetExtendedPropertiesTest()
{
DataSet dataSet1 = new DataSet();
dataSet1.ExtendedProperties.Add("DS1", "extended0");
DataTable table = new DataTable("TABLE1");
table.ExtendedProperties.Add("T1", "extended1");
table.Columns.Add("C1", typeof(int));
table.Columns.Add("C2", typeof(string));
table.Columns[1].MaxLength = 20;
table.Columns[0].ExtendedProperties.Add("C1Ext1", "extended2");
table.Columns[1].ExtendedProperties.Add("C2Ext1", "extended3");
dataSet1.Tables.Add(table);
table.LoadDataRow(new object[] { 1, "One" }, false);
table.LoadDataRow(new object[] { 2, "Two" }, false);
string file = Path.Combine(Path.GetTempPath(), "schemas-test.xml");
try
{
dataSet1.WriteXml(file, XmlWriteMode.WriteSchema);
}
catch (Exception ex)
{
Assert.False(true);
}
finally
{
File.Delete(file);
}
DataSet dataSet2 = new DataSet();
dataSet2.ReadXml(new StringReader(
@"<?xml version=""1.0"" standalone=""yes""?>
<NewDataSet>
<xs:schema id=""NewDataSet"" xmlns=""""
xmlns:xs=""http://www.w3.org/2001/XMLSchema""
xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata""
xmlns:msprop=""urn:schemas-microsoft-com:xml-msprop"">
<xs:element name=""NewDataSet"" msdata:IsDataSet=""true""
msdata:UseCurrentLocale=""true"" msprop:DS1=""extended0"">
<xs:complexType>
<xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
<xs:element name=""TABLE1"" msprop:T1=""extended1"">
<xs:complexType>
<xs:sequence>
<xs:element name=""C1"" type=""xs:int"" minOccurs=""0""
msprop:C1Ext1=""extended2"" />
<xs:element name=""C2"" type=""xs:string"" minOccurs=""0""
msprop:C2Ext1=""extended3"" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<TABLE1>
<C1>1</C1>
<C2>One</C2>
</TABLE1>
<TABLE1>
<C1>2</C1>
<C2>Two</C2>
</TABLE1>
</NewDataSet>"), XmlReadMode.ReadSchema);
Assert.Equal(dataSet1.ExtendedProperties["DS1"], dataSet2.ExtendedProperties["DS1"]);
Assert.Equal(dataSet1.Tables[0].ExtendedProperties["T1"], dataSet2.Tables[0].ExtendedProperties["T1"]);
Assert.Equal(dataSet1.Tables[0].Columns[0].ExtendedProperties["C1Ext1"],
dataSet2.Tables[0].Columns[0].ExtendedProperties["C1Ext1"]);
Assert.Equal(dataSet1.Tables[0].Columns[1].ExtendedProperties["C2Ext1"],
dataSet2.Tables[0].Columns[1].ExtendedProperties["C2Ext1"]);
}
}