Condividi tramite


DataTable.ReadXmlSchema Metodo

Definizione

Legge un XML Schema in DataTable.

Overload

ReadXmlSchema(XmlReader)

Legge uno schema XML nella classe DataTable, utilizzando la classe XmlReader specificata.

ReadXmlSchema(String)

Legge uno schema XML nella classe DataTable dal file specificato.

ReadXmlSchema(TextReader)

Legge uno schema XML nella classe DataTable, utilizzando la classe TextReader specificata.

ReadXmlSchema(Stream)

Legge uno schema XML nella classe DataTable, utilizzando il flusso specificato.

Commenti

Usare il ReadXmlSchema metodo per creare lo schema per un oggetto DataTable. Lo schema include definizioni di tabella, relazione e vincolo.

Per scrivere uno schema in un documento XML, utilizzare il WriteXmlSchema metodo .

L'XML Schema viene interpretato in base allo standard XSD.

Il ReadXmlSchema metodo viene in genere richiamato prima di richiamare il ReadXml metodo che viene usato per riempire l'oggetto DataTable.

ReadXmlSchema(XmlReader)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

Legge uno schema XML nella classe DataTable, utilizzando la classe XmlReader specificata.

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)

Parametri

reader
XmlReader

Classe XmlReader utilizzata per leggere le informazioni dello schema.

Esempio

L'applicazione console seguente crea un nuovo DataTableoggetto e scrive lo schema per tale tabella in un oggetto MemoryStream. L'esempio crea quindi un nuovo DataTable oggetto e legge il relativo schema dall'XML Schema salvato, usando un XmlTextReader oggetto (che eredita da XmlReader) come origine.

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

Commenti

Usare il ReadXmlSchema metodo per creare lo schema per un oggetto DataTable. Lo schema include definizioni di tabella, relazione e vincolo.

Per scrivere uno schema in un documento XML, utilizzare il WriteXmlSchema metodo .

L'XML Schema viene interpretato in base allo standard XSD.

Il danneggiamento dei dati può verificarsi se i tipi msdata:DataType e xs:type non corrispondono. Non verrà generata alcuna eccezione.

Il ReadXmlSchema metodo viene in genere richiamato prima di richiamare il ReadXml metodo che viene usato per riempire l'oggetto DataTable.

Nota

Il modo per creare una relazione annidata usando XML Schema consiste nell'avere elementi annidati impliciti. Inoltre, la relazione nidificata potrebbe essere ri cablata per usare nomi di colonna espliciti. È obbligatorio annidare in modo implicito gli elementi affinché le tabelle DataTable corrispondenti partecipino a una relazione annidata.

Vedi anche

Si applica a

ReadXmlSchema(String)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

Legge uno schema XML nella classe DataTable dal file specificato.

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

Parametri

fileName
String

Nome del file dal quale leggere le informazioni dello schema.

Esempio

L'applicazione console seguente crea un nuovo DataTableoggetto e scrive lo schema per tale tabella in un file. L'esempio crea quindi un nuovo DataTable oggetto e ne legge lo schema dallo schema XML salvato, usando il file come origine.

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

Commenti

Usare il ReadXmlSchema metodo per creare lo schema per un oggetto DataTable. Lo schema include definizioni di tabella, relazione e vincolo.

Per scrivere uno schema in un documento XML, utilizzare il WriteXmlSchema metodo .

L'XML Schema viene interpretato in base allo standard XSD.

Il danneggiamento dei dati può verificarsi se i tipi msdata:DataType e xs:type non corrispondono. Non verrà generata alcuna eccezione.

Il ReadXmlSchema metodo viene in genere richiamato prima di richiamare il ReadXml metodo che viene usato per riempire l'oggetto DataTable.

Per creare una relazione annidata usando XML Schema, utilizzare elementi annidati impliciti. È anche possibile riconfigurare la relazione annidata per usare nomi di colonna espliciti. Gli elementi devono essere annidati in modo implicito affinché le tabelle DataTable corrispondenti partecipino a una relazione annidata.

Vedi anche

Si applica a

ReadXmlSchema(TextReader)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

Legge uno schema XML nella classe DataTable, utilizzando la classe TextReader specificata.

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)

Parametri

reader
TextReader

Classe TextReader utilizzata per leggere le informazioni dello schema.

Esempio

L'applicazione console seguente crea un nuovo DataTableoggetto e scrive lo schema per tale tabella in un oggetto MemoryStream. L'esempio crea quindi un nuovo DataTable oggetto e legge il relativo schema dall'XML Schema salvato, usando un StreamReader oggetto (che eredita da TextReader) come origine.

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

Commenti

Usare il ReadXmlSchema metodo per creare lo schema per un oggetto DataTable. Lo schema include definizioni di tabella, relazione e vincolo.

Per scrivere uno schema in un documento XML, utilizzare il WriteXmlSchema metodo .

L'XML Schema viene interpretato in base allo standard XSD.

Il danneggiamento dei dati può verificarsi se i tipi msdata:DataType e xs:type non corrispondono. Non verrà generata alcuna eccezione.

Il ReadXmlSchema metodo viene in genere richiamato prima di richiamare il ReadXml metodo che viene usato per riempire l'oggetto DataTable.

Per creare una relazione annidata usando XML Schema, utilizzare elementi annidati impliciti. È anche possibile riconfigurare la relazione annidata per usare nomi di colonna espliciti. Gli elementi devono essere annidati in modo implicito affinché le tabelle DataTable corrispondenti partecipino a una relazione annidata.

Vedi anche

Si applica a

ReadXmlSchema(Stream)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

Legge uno schema XML nella classe DataTable, utilizzando il flusso specificato.

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)

Parametri

stream
Stream

Flusso utilizzato per leggere lo schema.

Esempio

L'applicazione console seguente crea un nuovo DataTableoggetto e scrive lo schema per tale tabella in un oggetto MemoryStream. L'esempio crea quindi un nuovo DataTable oggetto e ne legge lo schema dallo schema XML salvato.

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

Commenti

Usare il ReadXmlSchema metodo per creare lo schema per un oggetto DataTable. Lo schema include definizioni di tabella, relazione e vincolo.

Per scrivere uno schema in un documento XML, utilizzare il WriteXmlSchema metodo .

L'XML Schema viene interpretato in base allo standard XSD.

Il danneggiamento dei dati può verificarsi se i tipi msdata:DataType e xs:type non corrispondono. Non verrà generata alcuna eccezione.

Il ReadXmlSchema metodo viene in genere richiamato prima di richiamare il ReadXml metodo che viene usato per riempire l'oggetto DataTable.

Per creare una relazione annidata usando XML Schema, utilizzare elementi annidati impliciti. È anche possibile configurare la relazione annidata in modo da usare nomi di colonna espliciti. Gli elementi devono essere annidati in modo implicito affinché le tabelle DataTable corrispondenti partecipino a una relazione annidata.

Vedi anche

Si applica a