With XML files a lot of that work can be done automatically… with one major drawback: You have to learn yet another 'language': XSD.
Here is how to create XML Schemas using classes in the .Net framework without knowing anything about XSD:
protected void Button1_Click(object sender, EventArgs e)
{
// The DataSet name becomes the root XML element
DataSet MyDataSet = new DataSet("Golfers");
// This can be confusing, the 'DataTable' will actually
// become Elements (Rows) in the XML file.
DataTable MyDataTable = new DataTable("Golfer");
MyDataSet.Tables.Add(MyDataTable);
// Make columns attributes so we can
// link directly to a GridView
MyDataTable.Columns.Add(new DataColumn("ID",
typeof(System.Int32),
null,
MappingType.Attribute));
MyDataTable.Columns.Add(new DataColumn("Name",
typeof(String),
null,
MappingType.Attribute));
MyDataTable.Columns.Add(new DataColumn("Birthday",
typeof(DateTime),
null,
MappingType.Attribute));
// Write out the XSD
MyDataSet.WriteXmlSchema(@"C:\GolfersSchema.xsd");
// Put some data in the table
DataRow TempRow;
TempRow = MyDataTable.NewRow();
TempRow["ID"] = 1;
TempRow["Name"] = "Bobby Jones";
TempRow["Birthday"] = new DateTime(1902, 3, 17);
MyDataTable.Rows.Add(TempRow);
TempRow = MyDataTable.NewRow();
TempRow["ID"] = 2;
TempRow["Name"] = "Sam Snead";
TempRow["Birthday"] = new DateTime(1912, 5, 27);
MyDataTable.Rows.Add(TempRow);
TempRow = MyDataTable.NewRow();
TempRow["ID"] = 3;
TempRow["Name"] = "Tiger Woods";
TempRow["Birthday"] = new DateTime(1975, 12, 30);
MyDataTable.Rows.Add(TempRow);
// Write out the data
MyDataSet.WriteXml(@"C:\Golfers.xml");
}
Here is how the data is saved, not bad eh?
Here is what the Schema looks like. Note, you can always go into the schema and tweak things.
Here is one way to validate the XML against the Schema:
protected void Button2_Click(object sender, EventArgs e)
{
// First, read in the XML schema
DataSet MyDataSet = new DataSet();
MyDataSet.ReadXmlSchema(@"C:\GolfersSchema.xsd");
// Now, read in the XML file (it is validated
// against the schema when it is read in).
MyDataSet.ReadXml(@"C:\Golfers.xml");
// See how it looks in a GridView
GridView1.DataSource = MyDataSet;
GridView1.DataBind();
}
You can test the validation by modifying the XML file and trying to read it:
Lakshmi
Scottgu
Pandurang Nayak
Somasegar