DataTable.ReadXmlSchema DataTable.ReadXmlSchema DataTable.ReadXmlSchema DataTable.ReadXmlSchema Method

定義

將 XML 結構描述讀入 DataTableReads an XML schema into the DataTable.

多載

ReadXmlSchema(XmlReader) ReadXmlSchema(XmlReader) ReadXmlSchema(XmlReader) ReadXmlSchema(XmlReader)

使用指定的 DataTable,將 XML 結構描述讀入 XmlReaderReads an XML schema into the DataTable using the specified XmlReader.

ReadXmlSchema(String) ReadXmlSchema(String) ReadXmlSchema(String) ReadXmlSchema(String)

從指定的檔案,將 XML 結構描述讀入 DataTableReads an XML schema into the DataTable from the specified file.

ReadXmlSchema(TextReader) ReadXmlSchema(TextReader) ReadXmlSchema(TextReader) ReadXmlSchema(TextReader)

使用指定的 DataTable,將 XML 結構描述讀入 TextReaderReads an XML schema into the DataTable using the specified TextReader.

ReadXmlSchema(Stream) ReadXmlSchema(Stream) ReadXmlSchema(Stream)

使用指定的資料流,將 XML 結構描述讀入 DataTableReads an XML schema into the DataTable using the specified stream.

備註

使用方法來建立的架構DataTableReadXmlSchemaUse the ReadXmlSchema method to create the schema for a DataTable. 架構包括資料表、關聯和條件約束定義。The schema includes table, relation, and constraint definitions.

若要將架構寫入 XML 檔,請使用WriteXmlSchema方法。To write a schema to an XML document, use the WriteXmlSchema method.

XML 架構會根據 XSD 標準來加以解讀。The XML schema is interpreted according to the XSD standard.

ReadXmlSchema叫用用來填滿DataTableReadXml方法之前,通常會叫用方法。The ReadXmlSchema method is generally invoked before invoking the ReadXml method which is used to fill the DataTable.

ReadXmlSchema(XmlReader) ReadXmlSchema(XmlReader) ReadXmlSchema(XmlReader) ReadXmlSchema(XmlReader)

使用指定的 DataTable,將 XML 結構描述讀入 XmlReaderReads an XML schema into the DataTable using the specified XmlReader.

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)

參數

reader
XmlReader XmlReader XmlReader XmlReader

XmlReader,用來讀取結構描述資訊。The XmlReader used to read the schema information.

範例

下列主控台應用程式會建立新DataTable的,並將該資料表MemoryStream的架構寫入。The following console application creates a new DataTable, and writes the schema for that table to a MemoryStream. 然後,此範例會建立新DataTable的,並XmlTextReader使用(繼承自XmlReader)作為其來源,從儲存的 XML 架構讀取其架構。Then, the example creates a new DataTable and reads its schema from the saved XML schema, using a XmlTextReader (which inherits from XmlReader) 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.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

備註

使用方法來建立的架構DataTableReadXmlSchemaUse the ReadXmlSchema method to create the schema for a DataTable. 架構包括資料表、關聯和條件約束定義。The schema includes table, relation, and constraint definitions.

若要將架構寫入 XML 檔,請使用WriteXmlSchema方法。To write a schema to an XML document, use the WriteXmlSchema method.

XML 架構會根據 XSD 標準來加以解讀。The XML schema is interpreted according to the XSD standard.

如果 msdata: DataType 和 xs: type 類型不相符,可能會發生資料損毀。Data corruption can occur if the msdata:DataType and the xs:type types do not match. 將不會擲回任何例外狀況。No exception will be thrown.

ReadXmlSchema叫用用來填滿DataTableReadXml方法之前,通常會叫用方法。The ReadXmlSchema method is generally invoked before invoking the ReadXml method which is used to fill the DataTable.

注意

使用 XML 架構建立嵌套關聯性的方式是具有隱含的嵌套元素。The way to create a nested relation using XML schema is to have implicit nested elements. 此外,也可以將嵌套的關聯性重新連接,以使用明確的資料行名稱。Additionally, the nested relation could be re-wired, to use explicit column names. 專案必須隱含地嵌套,才能參與嵌套關聯性的對應 Datatable。It is mandatory for elements to be implicitly nested for the corresponding DataTables to participate in a nested relation.

另請參閱

ReadXmlSchema(String) ReadXmlSchema(String) ReadXmlSchema(String) ReadXmlSchema(String)

從指定的檔案,將 XML 結構描述讀入 DataTableReads an XML schema into the DataTable from the specified file.

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

參數

fileName
String String String String

要從中讀取結構描述資訊的檔案名稱。The name of the file from which to read the schema information.

範例

下列主控台應用程式會建立新DataTable的,並將該資料表的架構寫入檔案。The following console application creates a new DataTable, and writes the schema for that table to a file. 然後,此範例會建立新DataTable的,並使用檔案作為其來源,從儲存的 XML 架構讀取其架構。Then, the example creates a new DataTable and reads its schema from the saved XML schema, using the file as its source.

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

備註

使用方法來建立的架構DataTableReadXmlSchemaUse the ReadXmlSchema method to create the schema for a DataTable. 架構包括資料表、關聯和條件約束定義。The schema includes table, relation, and constraint definitions.

若要將架構寫入 XML 檔,請使用WriteXmlSchema方法。To write a schema to an XML document, use the WriteXmlSchema method.

XML 架構會根據 XSD 標準來加以解讀。The XML schema is interpreted according to the XSD standard.

如果 msdata: DataType 和 xs: type 類型不相符,可能會發生資料損毀。Data corruption can occur if the msdata:DataType and the xs:type types do not match. 將不會擲回任何例外狀況。No exception will be thrown.

ReadXmlSchema叫用用來填滿DataTableReadXml方法之前,通常會叫用方法。The ReadXmlSchema method is generally invoked before invoking the ReadXml method which is used to fill the DataTable.

若要使用 XML 架構建立嵌套的關聯性,請使用隱含的嵌套元素。To create a nested relation using XML schema, use implicit nested elements. 您也可以將嵌套的關聯性重新設定為使用明確的資料行名稱。You can also reconfigure the nested relation to use explicit column names. 專案必須以隱含方式嵌套,才能讓對應的 Datatable 參與嵌套關聯。Elements must be implicitly nested in order for the corresponding DataTables to participate in a nested relation.

另請參閱

ReadXmlSchema(TextReader) ReadXmlSchema(TextReader) ReadXmlSchema(TextReader) ReadXmlSchema(TextReader)

使用指定的 DataTable,將 XML 結構描述讀入 TextReaderReads an XML schema into the DataTable using the specified TextReader.

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)

參數

reader
TextReader TextReader TextReader TextReader

TextReader,用來讀取結構描述資訊。The TextReader used to read the schema information.

範例

下列主控台應用程式會建立新DataTable的,並將該資料表MemoryStream的架構寫入。The following console application creates a new DataTable, and writes the schema for that table to a MemoryStream. 然後,此範例會建立新DataTable的,並StreamReader使用(繼承自TextReader)作為其來源,從儲存的 XML 架構讀取其架構。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();
}
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

備註

使用方法來建立的架構DataTableReadXmlSchemaUse the ReadXmlSchema method to create the schema for a DataTable. 架構包括資料表、關聯和條件約束定義。The schema includes table, relation, and constraint definitions.

若要將架構寫入 XML 檔,請使用WriteXmlSchema方法。To write a schema to an XML document, use the WriteXmlSchema method.

XML 架構會根據 XSD 標準來加以解讀。The XML schema is interpreted according to the XSD standard.

如果 msdata: DataType 和 xs: type 類型不相符,可能會發生資料損毀。Data corruption can occur if the msdata:DataType and the xs:type types do not match. 將不會擲回任何例外狀況。No exception will be thrown.

ReadXmlSchema叫用用來填滿DataTableReadXml方法之前,通常會叫用方法。The ReadXmlSchema method is generally invoked before invoking the ReadXml method which is used to fill the DataTable.

若要使用 XML 架構建立嵌套的關聯性,請使用隱含的嵌套元素。To create a nested relation using XML schema, use implicit nested elements. 您也可以將嵌套的關聯性重新設定為使用明確的資料行名稱。You can also reconfigure the nested relation to use explicit column names. 專案必須以隱含方式嵌套,才能讓對應的 Datatable 參與嵌套關聯。Elements must be implicitly nested in order for the corresponding DataTables to participate in a nested relation.

另請參閱

ReadXmlSchema(Stream) ReadXmlSchema(Stream) ReadXmlSchema(Stream)

使用指定的資料流,將 XML 結構描述讀入 DataTableReads an XML schema into the DataTable using the specified stream.

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

參數

stream
Stream Stream Stream Stream

用來讀取結構描述的資料流。The stream used to read the schema.

範例

下列主控台應用程式會建立新DataTable的,並將該資料表MemoryStream的架構寫入。The following console application creates a new DataTable, and writes the schema for that table to a MemoryStream. 然後,此範例會建立新DataTable的,並從儲存的 XML 架構讀取其架構。Then, the example creates a new DataTable and reads its schema from the saved 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

備註

使用方法來建立的架構DataTableReadXmlSchemaUse the ReadXmlSchema method to create the schema for a DataTable. 架構包括資料表、關聯和條件約束定義。The schema includes table, relation, and constraint definitions.

若要將架構寫入 XML 檔,請使用WriteXmlSchema方法。To write a schema to an XML document, use the WriteXmlSchema method.

XML 架構會根據 XSD 標準來加以解讀。The XML schema is interpreted according to the XSD standard.

如果 msdata: DataType 和 xs: type 類型不相符,可能會發生資料損毀。Data corruption can occur if the msdata:DataType and the xs:type types do not match. 將不會擲回任何例外狀況。No exception will be thrown.

ReadXmlSchema叫用用來填滿DataTableReadXml方法之前,通常會叫用方法。The ReadXmlSchema method is generally invoked before invoking the ReadXml method which is used to fill the DataTable.

若要使用 XML 架構建立嵌套的關聯性,請使用隱含的嵌套元素。To create a nested relation using XML schema, use implicit nested elements. 您也可以將嵌套的關聯設定為使用明確的資料行名稱。You can also configure the nested relation to use explicit column names. 專案必須以隱含方式嵌套,才能讓對應的 Datatable 參與嵌套關聯。Elements must be implicitly nested in order for the corresponding DataTables to participate in a nested relation.

另請參閱

適用於