public void WriteXmlSchema2()
{
string xml = @"<myDataSet xmlns='NetFrameWork'><myTable><id>0</id><item>item 0</item></myTable><myTable><id>1</id><item>item 1</item></myTable><myTable><id>2</id><item>item 2</item></myTable><myTable><id>3</id><item>item 3</item></myTable><myTable><id>4</id><item>item 4</item></myTable><myTable><id>5</id><item>item 5</item></myTable><myTable><id>6</id><item>item 6</item></myTable><myTable><id>7</id><item>item 7</item></myTable><myTable><id>8</id><item>item 8</item></myTable><myTable><id>9</id><item>item 9</item></myTable></myDataSet>";
string schema = @"<?xml version='1.0' encoding='utf-16'?>
<xs:schema id='myDataSet' targetNamespace='NetFrameWork' xmlns:mstns='NetFrameWork' xmlns='NetFrameWork' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' attributeFormDefault='qualified' elementFormDefault='qualified'>
<xs:element name='myDataSet' msdata:IsDataSet='true' " +
"msdata:UseCurrentLocale='true'"
+ @">
<xs:complexType>
<xs:choice minOccurs='0' maxOccurs='unbounded'>
<xs:element name='myTable'>
<xs:complexType>
<xs:sequence>
<xs:element name='id' msdata:AutoIncrement='true' type='xs:int' minOccurs='0' />
<xs:element name='item' type='xs:string' minOccurs='0' />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>";
DataSet OriginalDataSet = new DataSet("myDataSet");
OriginalDataSet.Namespace = "NetFrameWork";
DataTable myTable = new DataTable("myTable");
DataColumn c1 = new DataColumn("id", typeof(int));
c1.AutoIncrement = true;
DataColumn c2 = new DataColumn("item");
myTable.Columns.Add(c1);
myTable.Columns.Add(c2);
OriginalDataSet.Tables.Add(myTable);
// Add ten rows.
DataRow newRow;
for (int i = 0; i < 10; i++)
{
newRow = myTable.NewRow();
newRow["item"] = "item " + i;
myTable.Rows.Add(newRow);
}
OriginalDataSet.AcceptChanges();
StringWriter sw = new StringWriter();
XmlTextWriter xtw = new XmlTextWriter(sw);
xtw.QuoteChar = '\'';
OriginalDataSet.WriteXml(xtw);
string result = sw.ToString();
Assert.Equal(xml, result);
sw = new StringWriter();
xtw = new XmlTextWriter(sw);
xtw.Formatting = Formatting.Indented;
OriginalDataSet.WriteXmlSchema(xtw);
result = sw.ToString();
result = result.Replace("\r\n", "\n").Replace('"', '\'');
Assert.Equal(schema.Replace("\r\n", "\n"), result);
}