DataTable.ReadXmlSchema Methode

Definition

Liest ein XML-Schema in die DataTable.

Überlädt

ReadXmlSchema(XmlReader)

Liest ein XML-Schema mit dem angegebenen DataTable in die XmlReader.

ReadXmlSchema(String)

Liest ein XML-Schema aus der angegebenen Datei in die DataTable.

ReadXmlSchema(TextReader)

Liest ein XML-Schema mit dem angegebenen DataTable in die TextReader.

ReadXmlSchema(Stream)

Liest ein XML-Schema mit dem angegebenen Stream in die DataTable.

Hinweise

Verwenden Sie die ReadXmlSchema -Methode, um das Schema für ein DataTablezu erstellen. Das Schema umfasst Tabellen-, Beziehungs- und Einschränkungsdefinitionen.

Verwenden Sie die WriteXmlSchema -Methode, um ein Schema in ein XML-Dokument zu schreiben.

Das XML-Schema wird gemäß dem XSD-Standard interpretiert.

Die ReadXmlSchema -Methode wird im Allgemeinen aufgerufen, bevor die ReadXml -Methode aufgerufen wird, die zum Ausfüllen von DataTableverwendet wird.

ReadXmlSchema(XmlReader)

Liest ein XML-Schema mit dem angegebenen DataTable in die XmlReader.

public:
 void ReadXmlSchema(System::Xml::XmlReader ^ reader);
public void ReadXmlSchema (System.Xml.XmlReader? reader);
public void ReadXmlSchema (System.Xml.XmlReader reader);
member this.ReadXmlSchema : System.Xml.XmlReader -> unit
Public Sub ReadXmlSchema (reader As XmlReader)

Parameter

reader
XmlReader

Der zum Lesen der Schemainformationen verwendete XmlReader.

Beispiele

Die folgende Konsolenanwendung erstellt ein neues DataTableund schreibt das Schema für diese Tabelle in ein MemoryStream. Anschließend erstellt das Beispiel ein neues DataTable und liest sein Schema aus dem gespeicherten XML-Schema, wobei ein XmlTextReader (das von XmlReadererbt) als Quelle verwendet wird.

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.Xml.XmlTextReader reader =
        new System.Xml.XmlTextReader(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();
}
Private Sub DemonstrateReadWriteXMLSchemaWithReader()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintSchema(table, "Original table")

  ' Write the schema to XML in a memory stream.
  Dim xmlStream As New System.IO.MemoryStream()
  table.WriteXmlSchema(xmlStream)

  ' Rewind the memory stream.
  xmlStream.Position = 0

  Dim newTable As New DataTable
  Dim reader As New System.Xml.XmlTextReader(xmlStream)
  newTable.ReadXmlSchema(reader)

  ' Print out values in the table.
  PrintSchema(newTable, "New Table")
End Sub

Private Function CreateTestTable(ByVal tableName As String) _
      As DataTable
  ' Create a test DataTable with two columns and a few rows.
  Dim table As New DataTable(tableName)
  Dim column As New DataColumn("id", GetType(System.Int32))
  column.AutoIncrement = True
  table.Columns.Add(column)

  column = New DataColumn("item", GetType(System.String))
  table.Columns.Add(column)

  ' Add ten rows.
  Dim row As DataRow
  For i As Integer = 0 To 9
    row = table.NewRow()
    row("item") = "item " & i
    table.Rows.Add(row)
  Next i

  table.AcceptChanges()
  Return table
End Function

Private Sub PrintSchema(ByVal table As DataTable, _
      ByVal label As String)
  ' Display the schema of the supplied DataTable:
  Console.WriteLine(label)
  For Each column As DataColumn In table.Columns
    Console.WriteLine("{0}{1}: {2}", ControlChars.Tab, _
      column.ColumnName, column.DataType.Name)
  Next column
End Sub

Hinweise

Verwenden Sie die ReadXmlSchema -Methode, um das Schema für ein DataTablezu erstellen. Das Schema umfasst Tabellen-, Beziehungs- und Einschränkungsdefinitionen.

Verwenden Sie die WriteXmlSchema -Methode, um ein Schema in ein XML-Dokument zu schreiben.

Das XML-Schema wird gemäß dem XSD-Standard interpretiert.

Datenbeschädigungen können auftreten, wenn die Typen msdata:DataType und xs:type nicht übereinstimmen. Es wird keine Ausnahme ausgelöst.

Die ReadXmlSchema -Methode wird im Allgemeinen aufgerufen, bevor die ReadXml -Methode aufgerufen wird, die zum Ausfüllen von DataTableverwendet wird.

Hinweis

Die Möglichkeit, eine geschachtelte Beziehung mithilfe des XML-Schemas zu erstellen, besteht darin, implizite geschachtelte Elemente zu haben. Darüber hinaus kann die geschachtelte Beziehung neu verkabelt werden, um explizite Spaltennamen zu verwenden. Es ist obligatorisch, dass Elemente implizit geschachtelt werden, damit die entsprechenden DataTables an einer geschachtelten Beziehung teilnehmen.

Weitere Informationen

Gilt für:

ReadXmlSchema(String)

Liest ein XML-Schema aus der angegebenen Datei in die DataTable.

public:
 void ReadXmlSchema(System::String ^ fileName);
public void ReadXmlSchema (string fileName);
member this.ReadXmlSchema : string -> unit
Public Sub ReadXmlSchema (fileName As String)

Parameter

fileName
String

Der Name der Datei, aus der die Schemainformationen gelesen werden sollen.

Beispiele

Die folgende Konsolenanwendung erstellt ein neues DataTableund schreibt das Schema für diese Tabelle in eine Datei. Anschließend erstellt das Beispiel eine neue DataTable und liest sein Schema aus dem gespeicherten XML-Schema, wobei die Datei als Quelle verwendet wird.

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

    // Write the schema to XML in a file.
    string xmlFile = "C:\\SchemaDemo.xml";
    table.WriteXmlSchema(xmlFile);

    DataTable newTable = new DataTable();
    newTable.ReadXmlSchema(xmlFile);

    // 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();
}
Private Sub DemonstrateReadWriteXMLSchemaWithFile()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintSchema(table, "Original table")

  Dim xmlFile As String = "SchemaDemo.xml"

  ' Write the schema to XML.
  table.WriteXmlSchema(xmlFile)

  Dim newTable As New DataTable
  newTable.ReadXmlSchema(xmlFile)

  ' Print out values in the table.
  PrintSchema(newTable, "New Table")
End Sub

Private Function CreateTestTable(ByVal tableName As String) _
      As DataTable
  ' Create a test DataTable with two columns and a few rows.
  Dim table As New DataTable(tableName)
  Dim column As New DataColumn("id", GetType(System.Int32))
  column.AutoIncrement = True
  table.Columns.Add(column)

  column = New DataColumn("item", GetType(System.String))
  table.Columns.Add(column)

  ' Add ten rows.
  Dim row As DataRow
  For i As Integer = 0 To 9
    row = table.NewRow()
    row("item") = "item " & i
    table.Rows.Add(row)
  Next i

  table.AcceptChanges()
  Return table
End Function

Private Sub PrintSchema(ByVal table As DataTable, _
      ByVal label As String)
  ' Display the schema of the supplied DataTable:
  Console.WriteLine(label)
  For Each column As DataColumn In table.Columns
    Console.WriteLine("{0}{1}: {2}", ControlChars.Tab, _
      column.ColumnName, column.DataType.Name)
  Next column
End Sub

Hinweise

Verwenden Sie die ReadXmlSchema -Methode, um das Schema für ein DataTablezu erstellen. Das Schema umfasst Tabellen-, Beziehungs- und Einschränkungsdefinitionen.

Verwenden Sie die WriteXmlSchema -Methode, um ein Schema in ein XML-Dokument zu schreiben.

Das XML-Schema wird gemäß dem XSD-Standard interpretiert.

Datenbeschädigungen können auftreten, wenn die Typen msdata:DataType und xs:type nicht übereinstimmen. Es wird keine Ausnahme ausgelöst.

Die ReadXmlSchema -Methode wird im Allgemeinen aufgerufen, bevor die ReadXml -Methode aufgerufen wird, die zum Ausfüllen von DataTableverwendet wird.

Verwenden Sie implizit geschachtelte Elemente, um mithilfe des XML-Schemas eine geschachtelte Beziehung zu erstellen. Sie können die geschachtelte Beziehung auch neu konfigurieren, um explizite Spaltennamen zu verwenden. Elemente müssen implizit geschachtelt werden, damit die entsprechenden DataTables an einer geschachtelten Beziehung teilnehmen können.

Weitere Informationen

Gilt für:

ReadXmlSchema(TextReader)

Liest ein XML-Schema mit dem angegebenen DataTable in die TextReader.

public:
 void ReadXmlSchema(System::IO::TextReader ^ reader);
public void ReadXmlSchema (System.IO.TextReader? reader);
public void ReadXmlSchema (System.IO.TextReader reader);
member this.ReadXmlSchema : System.IO.TextReader -> unit
Public Sub ReadXmlSchema (reader As TextReader)

Parameter

reader
TextReader

Der zum Lesen der Schemainformationen verwendete TextReader.

Beispiele

Die folgende Konsolenanwendung erstellt ein neues DataTableund schreibt das Schema für diese Tabelle in ein MemoryStream. Anschließend erstellt das Beispiel ein neues DataTable und liest sein Schema aus dem gespeicherten XML-Schema, wobei ein StreamReader (das von TextReadererbt) als Quelle verwendet wird.

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();
}
Private Sub DemonstrateReadWriteXMLSchemaWithReader()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintSchema(table, "Original table")

  ' Write the schema to XML in a memory stream.
  Dim xmlStream As New System.IO.MemoryStream()
  table.WriteXmlSchema(xmlStream)

  ' Rewind the memory stream.
  xmlStream.Position = 0

  Dim newTable As New DataTable
  Dim reader As New System.IO.StreamReader(xmlStream)
  newTable.ReadXmlSchema(reader)

  ' Print out values in the table.
  PrintSchema(newTable, "New Table")
End Sub

Private Function CreateTestTable(ByVal tableName As String) _
  As DataTable

  ' Create a test DataTable with two columns and a few rows.
  Dim table As New DataTable(tableName)
  Dim column As New DataColumn("id", GetType(System.Int32))
  column.AutoIncrement = True
  table.Columns.Add(column)

  column = New DataColumn("item", GetType(System.String))
  table.Columns.Add(column)

  ' Add ten rows.
  Dim row As DataRow
  For i As Integer = 0 To 9
    row = table.NewRow()
    row("item") = "item " & i
    table.Rows.Add(row)
  Next i

  table.AcceptChanges()
  Return table
End Function

Private Sub PrintSchema(ByVal table As DataTable, _
  ByVal label As String)

  ' Display the schema of the supplied DataTable:
  Console.WriteLine(label)
  For Each column As DataColumn In table.Columns
    Console.WriteLine("{0}{1}: {2}", ControlChars.Tab, _
      column.ColumnName, column.DataType.Name)
  Next column
End Sub

Hinweise

Verwenden Sie die ReadXmlSchema -Methode, um das Schema für ein DataTablezu erstellen. Das Schema umfasst Tabellen-, Beziehungs- und Einschränkungsdefinitionen.

Verwenden Sie die WriteXmlSchema -Methode, um ein Schema in ein XML-Dokument zu schreiben.

Das XML-Schema wird gemäß dem XSD-Standard interpretiert.

Datenbeschädigungen können auftreten, wenn die Typen msdata:DataType und xs:type nicht übereinstimmen. Es wird keine Ausnahme ausgelöst.

Die ReadXmlSchema -Methode wird im Allgemeinen aufgerufen, bevor die ReadXml -Methode aufgerufen wird, die zum Ausfüllen von DataTableverwendet wird.

Verwenden Sie implizit geschachtelte Elemente, um mithilfe des XML-Schemas eine geschachtelte Beziehung zu erstellen. Sie können die geschachtelte Beziehung auch neu konfigurieren, um explizite Spaltennamen zu verwenden. Elemente müssen implizit geschachtelt werden, damit die entsprechenden DataTables an einer geschachtelten Beziehung teilnehmen können.

Weitere Informationen

Gilt für:

ReadXmlSchema(Stream)

Liest ein XML-Schema mit dem angegebenen Stream in die DataTable.

public:
 void ReadXmlSchema(System::IO::Stream ^ stream);
public void ReadXmlSchema (System.IO.Stream? stream);
public void ReadXmlSchema (System.IO.Stream stream);
member this.ReadXmlSchema : System.IO.Stream -> unit
Public Sub ReadXmlSchema (stream As Stream)

Parameter

stream
Stream

Der zum Lesen des Schemas verwendete Stream.

Beispiele

Die folgende Konsolenanwendung erstellt ein neues DataTableund schreibt das Schema für diese Tabelle in ein MemoryStream. Anschließend erstellt das Beispiel ein neues DataTable und liest sein Schema aus dem gespeicherten XML-Schema.

private static void DemonstrateReadWriteXMLSchemaWithStream()
{
    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();
    newTable.ReadXmlSchema(xmlStream);

    // 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();
}
Private Sub DemonstrateReadWriteXMLSchemaWithStream()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintSchema(table, "Original table")

  ' Write the schema to XML in a memory stream.
  Dim xmlStream As New System.IO.MemoryStream()
  table.WriteXmlSchema(xmlStream)

  ' Rewind the memory stream.
  xmlStream.Position = 0

  Dim newTable As New DataTable
  newTable.ReadXmlSchema(xmlStream)

  ' Print out values in the table.
  PrintSchema(newTable, "New Table")
End Sub

Private Function CreateTestTable(ByVal tableName As String) _
  As DataTable

  ' Create a test DataTable with two columns and a few rows.
  Dim table As New DataTable(tableName)
  Dim column As New DataColumn("id", GetType(System.Int32))
  column.AutoIncrement = True
  table.Columns.Add(column)

  column = New DataColumn("item", GetType(System.String))
  table.Columns.Add(column)

  ' Add ten rows.
  Dim row As DataRow
  For i As Integer = 0 To 9
    row = table.NewRow()
    row("item") = "item " & i
    table.Rows.Add(row)
  Next i

  table.AcceptChanges()
  Return table
End Function

Private Sub PrintSchema(ByVal table As DataTable, _
  ByVal label As String)

  ' Display the schema of the supplied DataTable:
  Console.WriteLine(label)
  For Each column As DataColumn In table.Columns
    Console.WriteLine("{0}{1}: {2}", ControlChars.Tab, _
      column.ColumnName, column.DataType.Name)
  Next column
End Sub

Hinweise

Verwenden Sie die ReadXmlSchema -Methode, um das Schema für ein DataTablezu erstellen. Das Schema umfasst Tabellen-, Beziehungs- und Einschränkungsdefinitionen.

Verwenden Sie die WriteXmlSchema -Methode, um ein Schema in ein XML-Dokument zu schreiben.

Das XML-Schema wird gemäß dem XSD-Standard interpretiert.

Datenbeschädigungen können auftreten, wenn die Typen msdata:DataType und xs:type nicht übereinstimmen. Es wird keine Ausnahme ausgelöst.

Die ReadXmlSchema -Methode wird im Allgemeinen aufgerufen, bevor die ReadXml -Methode aufgerufen wird, die zum Ausfüllen von DataTableverwendet wird.

Verwenden Sie implizit geschachtelte Elemente, um mithilfe des XML-Schemas eine geschachtelte Beziehung zu erstellen. Sie können auch die geschachtelte Beziehung so konfigurieren, dass explizite Spaltennamen verwendet werden. Elemente müssen implizit geschachtelt werden, damit die entsprechenden DataTables an einer geschachtelten Beziehung teilnehmen können.

Weitere Informationen

Gilt für: