Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

DataTable.ReadXmlSchema Method (TextReader)

Reads an XML schema into the DataTable using the specified TextReader.

Namespace: System.Data
Assembly: System.Data (in system.data.dll)

public void ReadXmlSchema (
	TextReader reader
)
public void ReadXmlSchema (
	TextReader reader
)
public function ReadXmlSchema (
	reader : TextReader
)
Not applicable.

Parameters

reader

The TextReader used to read the schema information.

Use the ReadXmlSchema method to create the schema for a DataTable. The schema includes table, relation, and constraint definitions.

To write a schema to an XML document, use the WriteXmlSchema method.

The XML schema is interpreted according to the XSD standard.

The ReadXmlSchema method is generally invoked before invoking the ReadXml method which is used to fill the DataTable.

NoteNote:

To create a nested relation using XML schema, use implicit nested elements. You can also reconfigure the nested relation to use explicit column names. Elements must be implicitly nested in order for the corresponding DataTables to participate in a nested relation.

The following console application creates a new DataTable, and writes the schema for that table to a MemoryStream. Then, the example creates a new DataTable and reads its schema from the saved XML schema, using a StreamReader (which inherits from TextReader) as its source.

private static void DemonstrateReadWriteXMLSchemaWithReader()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintSchema(table, "Original table");

    // Write the schema to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXmlSchema(xmlStream);

    // Rewind the memory stream.
    xmlStream.Position = 0;

    DataTable newTable = new DataTable();
    System.IO.StreamReader reader = 
        new System.IO.StreamReader(xmlStream);
    newTable.ReadXmlSchema(reader);

    // Print out values in the table.
    PrintSchema(newTable, "New table");
}

private static DataTable CreateTestTable(string tableName)
{
    // Create a test DataTable with two columns and a few rows.
    DataTable table = new DataTable(tableName);
    DataColumn column = new DataColumn("id", typeof(System.Int32));
    column.AutoIncrement = true;
    table.Columns.Add(column);

    column = new DataColumn("item", typeof(System.String));
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i <= 9; i++)
    {
        row = table.NewRow();
        row["item"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    return table;
}

private static void PrintSchema(DataTable table, string label)
{
    // Display the schema of the supplied DataTable:
    Console.WriteLine(label);
    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine("\t{0}: {1}", 
            column.ColumnName, column.DataType.Name);
    }
    Console.WriteLine();
}

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

.NET Compact Framework

Supported in: 2.0

XNA Framework

Supported in: 1.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.