DataTable.ReadXml 메서드

정의

XML 스키마와 데이터를 DataTable으로 읽어옵니다.

오버로드

ReadXml(Stream)

지정된 DataTable를 사용하여 XML 스키마와 데이터를 Stream으로 읽어옵니다.

ReadXml(TextReader)

지정된 DataTable를 사용하여 XML 스키마와 데이터를 TextReader으로 읽어옵니다.

ReadXml(String)

지정된 파일로부터 XML 스키마와 데이터를 DataTable로 읽어옵니다.

ReadXml(XmlReader)

지정된 DataTable를 사용하여 XML 스키마와 데이터를 XmlReader로 읽어옵니다.

설명

이 메서드는 ReadXml 데이터만 읽거나 XML 문서에서 데이터와 스키마 DataTable 를 모두 읽는 방법을 제공하는 반면 ReadXmlSchema , 메서드는 스키마만 읽습니다. 데이터와 스키마를 모두 읽으려면 매개 변수를 ReadXML 포함하는 XmlReadMode 오버로드 중 하나를 사용하고 해당 값을 으로 ReadSchema설정합니다.

각각과 WriteXmlSchema 메서드에 똑 WriteXml 같습니다. XML 데이터 또는 스키마와 데이터를 DataTable모두 작성하려면 이 메서드를 WriteXml 사용합니다. 스키마만 작성하려면 메서드를 WriteXmlSchema 사용합니다.

참고

InvalidOperationException 경우의 열 형식에 throw 됩니다 합니다 DataRow 에서 읽거나 쓴 구현 되 IDynamicMetaObjectProvider 구현 하지 않습니다 IXmlSerializable합니다.

ReadXml(Stream)

지정된 DataTable를 사용하여 XML 스키마와 데이터를 Stream으로 읽어옵니다.

public:
 System::Data::XmlReadMode ReadXml(System::IO::Stream ^ stream);
public System.Data.XmlReadMode ReadXml (System.IO.Stream? stream);
public System.Data.XmlReadMode ReadXml (System.IO.Stream stream);
member this.ReadXml : System.IO.Stream -> System.Data.XmlReadMode
Public Function ReadXml (stream As Stream) As XmlReadMode

매개 변수

stream
Stream

Stream에서 파생되는 개체입니다.

반환

XmlReadMode

데이터를 읽는 데 사용되는 XmlReadMode를 반환합니다.

예제

다음 예제에서는 두 개의 열과 10개의 행을 포함하는 행을 만듭니다 DataTable . 이 예제에서는 메서드를 DataTable 호출하여 스키마와 데이터를 메모리 스트림에 WriteXml 씁니다. 이 예제에서는 두 번째 DataTable 메서드를 만들고 메서드를 ReadXml 호출하여 스키마 및 데이터로 채웁니다.

private static void DemonstrateReadWriteXMLDocumentWithStream()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    // Write the schema and data to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);

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

    DataTable newTable = new DataTable();
    newTable.ReadXml(xmlStream);

    // Print out values in the table.
    PrintValues(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 PrintValues(DataTable table, string label)
{
    // Display the contents of the supplied DataTable:
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithStream()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintValues(table, "Original table")

  ' Write the schema and data to XML in a memory stream.
  Dim xmlStream As New System.IO.MemoryStream()
  table.WriteXml(xmlStream, XmlWriteMode.WriteSchema)

  ' Rewind the memory stream.
  xmlStream.Position = 0

  Dim newTable As New DataTable
  newTable.ReadXml(xmlStream)

  ' Print out values in the table.
  PrintValues(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 PrintValues(ByVal table As DataTable, ByVal label As String)
  ' Display the contents of the supplied DataTable:
  Console.WriteLine(label)
  For Each row As DataRow In table.Rows
    For Each column As DataColumn In table.Columns
      Console.Write("{0}{1}", ControlChars.Tab, row(column))
    Next column
    Console.WriteLine()
  Next row
End Sub

설명

현재 DataTable 및 해당 하위 항목은 제공된 데이터와 함께 로드됩니다 Stream. 이 메서드의 동작은 메서드의 DataSet.ReadXml 동작과 동일합니다. 단, 이 경우 데이터는 현재 테이블 및 해당 하위 항목에 대해서만 로드됩니다.

이 메서드는 ReadXml 데이터만 읽거나 XML 문서에서 데이터와 스키마 DataTable 를 모두 읽는 방법을 제공하는 반면 ReadXmlSchema , 메서드는 스키마만 읽습니다.

각각과 WriteXmlSchema 메서드에 똑 WriteXml 같습니다. XML 데이터 또는 스키마와 데이터를 DataTable모두 작성하려면 이 메서드를 WriteXml 사용합니다. 스키마만 작성하려면 메서드를 WriteXmlSchema 사용합니다.

참고

InvalidOperationException 경우의 열 형식에 throw 됩니다 합니다 DataRow 에서 읽거나 쓴 구현 되 IDynamicMetaObjectProvider 구현 하지 않습니다 IXmlSerializable합니다.

인라인 스키마가 지정된 경우 인라인 스키마는 데이터를 로드하기 전에 기존 관계형 구조를 확장하는 데 사용됩니다. 충돌(예: 다른 데이터 형식으로 정의된 동일한 테이블의 동일한 열)이 있는 경우 예외가 발생합니다.

인라인 스키마가 지정되지 않은 경우 관계형 구조는 XML 문서의 구조에 따라 필요에 따라 유추를 통해 확장됩니다. 모든 데이터를 노출하기 위해 유추를 통해 스키마를 확장할 수 없는 경우 예외가 발생합니다.

참고

합니다 DataSet 해당 XML 요소를 연결 하지 않으며 DataColumn 또는 DataTable serialize 된 xml에서 ("_")와 같은 유효한 XML 문자는 이스케이프 하는 경우. 그 DataSet 자체는 XML 요소 이름에서 잘못된 XML 문자만 이스케이프하므로 동일한 문자만 사용할 수 있습니다. XML 요소 이름의 법적 문자가 이스케이프되면 처리하는 동안 요소가 무시됩니다.

추가 정보

적용 대상

ReadXml(TextReader)

지정된 DataTable를 사용하여 XML 스키마와 데이터를 TextReader으로 읽어옵니다.

public:
 System::Data::XmlReadMode ReadXml(System::IO::TextReader ^ reader);
public System.Data.XmlReadMode ReadXml (System.IO.TextReader? reader);
public System.Data.XmlReadMode ReadXml (System.IO.TextReader reader);
member this.ReadXml : System.IO.TextReader -> System.Data.XmlReadMode
Public Function ReadXml (reader As TextReader) As XmlReadMode

매개 변수

reader
TextReader

데이터를 읽는 데 사용할 TextReader입니다.

반환

XmlReadMode

데이터를 읽는 데 사용되는 XmlReadMode를 반환합니다.

예제

다음 예제에서는 두 개의 열과 10개의 행을 포함하는 행을 만듭니다 DataTable . 이 예제에서는 메서드를 DataTable 호출하여 스키마와 데이터를 메모리 스트림에 WriteXml 씁니다. 이 예제에서는 두 번째 DataTable 를 만들고 메서드를 ReadXml 호출하여 스키마 및 데이터로 채웁니다.

private static void DemonstrateReadWriteXMLDocumentWithReader()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    // Write the schema and data to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);

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

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

    // Print out values in the table.
    PrintValues(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 PrintValues(DataTable table, string label)
{
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithReader()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintValues(table, "Original table")

  ' Write the schema and data to XML in a memory stream.
  Dim xmlStream As New System.IO.MemoryStream()
  table.WriteXml(xmlStream, XmlWriteMode.WriteSchema)

  ' Rewind the memory stream.
  xmlStream.Position = 0

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

  ' Print out values in the table.
  PrintValues(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 PrintValues(ByVal table As DataTable, _
  ByVal label As String)
  Console.WriteLine(label)
  For Each row As DataRow In table.Rows
    For Each column As DataColumn In table.Columns
      Console.Write("{0}{1}", ControlChars.Tab, row(column))
    Next column
    Console.WriteLine()
  Next row
End Sub

설명

현재 DataTable 및 해당 하위 항목은 제공된 데이터와 함께 로드됩니다 TextReader. 이 메서드의 동작은 메서드의 DataSet.ReadXml 동작과 동일합니다. 단, 이 경우 데이터는 현재 테이블 및 해당 하위 항목에 대해서만 로드됩니다.

이 메서드는 ReadXml 데이터만 읽거나 XML 문서에서 데이터와 스키마 DataTable 를 모두 읽는 방법을 제공하는 반면 ReadXmlSchema , 메서드는 스키마만 읽습니다.

각각과 WriteXmlSchema 메서드에 똑 WriteXml 같습니다. XML 데이터 또는 스키마와 데이터를 DataTable모두 작성하려면 이 메서드를 WriteXml 사용합니다. 스키마만 작성하려면 메서드를 WriteXmlSchema 사용합니다.

참고

InvalidOperationException 경우의 열 형식에 throw 됩니다 합니다 DataRow 에서 읽거나 쓴 구현 되 IDynamicMetaObjectProvider 구현 하지 않습니다 IXmlSerializable합니다.

인라인 스키마가 지정된 경우 인라인 스키마는 데이터를 로드하기 전에 기존 관계형 구조를 확장하는 데 사용됩니다. 충돌(예: 다른 데이터 형식으로 정의된 동일한 테이블의 동일한 열)이 있는 경우 예외가 발생합니다.

인라인 스키마가 지정되지 않은 경우 관계형 구조는 XML 문서의 구조에 따라 필요에 따라 유추를 통해 확장됩니다. 모든 데이터를 노출하기 위해 유추를 통해 스키마를 확장할 수 없는 경우 예외가 발생합니다.

참고

합니다 DataSet 해당 XML 요소를 연결 하지 않으며 DataColumn 또는 DataTable serialize 된 xml에서 ("_")와 같은 유효한 XML 문자는 이스케이프 하는 경우. 그 DataSet 자체는 XML 요소 이름에서 잘못된 XML 문자만 이스케이프하므로 동일한 문자만 사용할 수 있습니다. XML 요소 이름의 법적 문자가 이스케이프되면 처리하는 동안 요소가 무시됩니다.

추가 정보

적용 대상

ReadXml(String)

지정된 파일로부터 XML 스키마와 데이터를 DataTable로 읽어옵니다.

public:
 System::Data::XmlReadMode ReadXml(System::String ^ fileName);
public System.Data.XmlReadMode ReadXml (string fileName);
member this.ReadXml : string -> System.Data.XmlReadMode
Public Function ReadXml (fileName As String) As XmlReadMode

매개 변수

fileName
String

데이터를 읽을 파일의 이름입니다.

반환

XmlReadMode

데이터를 읽는 데 사용되는 XmlReadMode를 반환합니다.

예제

다음 예제에서는 열 2개와 행 10개를 포함하는 행을 만듭니다 DataTable . 이 예제에서는 스키마와 데이터를 디스크에 씁니다 DataTable . 이 예제에서는 두 번째 DataTable 를 만들고 메서드를 ReadXml 호출하여 스키마 및 데이터로 채웁니다.

private static void DemonstrateReadWriteXMLDocumentWithString()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    string fileName = "C:\\TestData.xml";
    table.WriteXml(fileName, XmlWriteMode.WriteSchema);

    DataTable newTable = new DataTable();
    newTable.ReadXml(fileName);

    // Print out values in the table.
    PrintValues(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 PrintValues(DataTable table, string label)
{
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithString()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintValues(table, "Original table")

  ' Write the schema and data to XML in a file.
  Dim fileName As String = "C:\TestData.xml"
  table.WriteXml(fileName, XmlWriteMode.WriteSchema)

  Dim newTable As New DataTable
  newTable.ReadXml(fileName)

  ' Print out values in the table.
  PrintValues(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 PrintValues(ByVal table As DataTable, _
  ByVal label As String)
  Console.WriteLine(label)
  For Each row As DataRow In table.Rows
    For Each column As DataColumn In table.Columns
      Console.Write("{0}{1}", ControlChars.Tab, row(column))
    Next column
    Console.WriteLine()
  Next row
End Sub

설명

현재 DataTable 및 해당 하위 항목은 제공된 파일에 명명된 파일의 데이터와 함께 로드됩니다 String. 이 메서드의 동작은 메서드의 DataSet.ReadXml 동작과 동일합니다. 단, 이 경우 데이터는 현재 테이블 및 해당 하위 항목에 대해서만 로드됩니다.

이 메서드는 ReadXml 데이터만 읽거나 XML 문서에서 데이터와 스키마 DataTable 를 모두 읽는 방법을 제공하는 반면 ReadXmlSchema , 메서드는 스키마만 읽습니다.

각 메서드와 WriteXmlSchema 메서드의 WriteXml 경우도 마찬가지입니다. XML 데이터 또는 스키마와 데이터를 DataTable모두 작성하려면 이 메서드를 WriteXml 사용합니다. 스키마만 작성하려면 메서드를 WriteXmlSchema 사용합니다.

참고

InvalidOperationException 경우의 열 형식에 throw 됩니다 합니다 DataRow 에서 읽거나 쓴 구현 되 IDynamicMetaObjectProvider 구현 하지 않습니다 IXmlSerializable합니다.

인라인 스키마가 지정된 경우 인라인 스키마는 데이터를 로드하기 전에 기존 관계형 구조를 확장하는 데 사용됩니다. 충돌이 있는 경우(예: 다른 데이터 형식으로 정의된 동일한 테이블의 동일한 열) 예외가 발생합니다.

인라인 스키마를 지정하지 않으면 XML 문서의 구조에 따라 필요에 따라 관계형 구조가 유추를 통해 확장됩니다. 모든 데이터를 노출하기 위해 유추를 통해 스키마를 확장할 수 없는 경우 예외가 발생합니다.

참고

합니다 DataSet 해당 XML 요소를 연결 하지 않으며 DataColumn 또는 DataTable serialize 된 xml에서 ("_")와 같은 유효한 XML 문자는 이스케이프 하는 경우. DataSet 그 자체는 XML 요소 이름에서 잘못된 XML 문자만 이스케이프하므로 동일한 문자만 사용할 수 있습니다. XML 요소 이름의 법적 문자를 이스케이프하면 처리하는 동안 요소가 무시됩니다.

using System.Data;  
public class A {  
   static void Main(string[] args) {  
      DataTable tabl = new DataTable("mytable");  
      tabl.Columns.Add(new DataColumn("id", typeof(int)));  
      for (int i = 0; i < 10; i++) {  
         DataRow row = tabl.NewRow();  
         row["id"] = i;  
         tabl.Rows.Add(row);  
      }  
      tabl.WriteXml("f.xml", XmlWriteMode.WriteSchema);  
      DataTable newt = new DataTable();  
      newt.ReadXml("f.xml");  
   }  
}  

추가 정보

적용 대상

ReadXml(XmlReader)

지정된 DataTable를 사용하여 XML 스키마와 데이터를 XmlReader로 읽어옵니다.

public:
 System::Data::XmlReadMode ReadXml(System::Xml::XmlReader ^ reader);
public System.Data.XmlReadMode ReadXml (System.Xml.XmlReader? reader);
public System.Data.XmlReadMode ReadXml (System.Xml.XmlReader reader);
member this.ReadXml : System.Xml.XmlReader -> System.Data.XmlReadMode
Public Function ReadXml (reader As XmlReader) As XmlReadMode

매개 변수

reader
XmlReader

데이터를 읽는 데 사용할 XmlReader입니다.

반환

XmlReadMode

데이터를 읽는 데 사용되는 XmlReadMode를 반환합니다.

예제

다음 예제에서는 열 2개와 행 10개를 포함하는 행을 만듭니다 DataTable . 이 예제에서는 스키마 및 데이터를 .에 XmlReader씁니다DataTable. 이 예제에서는 두 번째 DataTable 를 만들고 메서드를 ReadXml 호출하여 인스턴스의 XmlReader 스키마 및 데이터로 채웁니다.

private static void DemonstrateReadWriteXMLDocumentWithReader()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    // Write the schema and data to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);

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

    System.Xml.XmlTextReader reader =
        new System.Xml.XmlTextReader(xmlStream);
    DataTable newTable = new DataTable();
    newTable.ReadXml(reader);

    // Print out values in the table.
    PrintValues(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 PrintValues(DataTable table, string label)
{
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithReader()
  Dim table As DataTable = CreateTestTable("XmlDemo")
  PrintValues(table, "Original table")

  ' Write the schema and data to XML in a memory stream.
  Dim xmlStream As New System.IO.MemoryStream()
  table.WriteXml(xmlStream, XmlWriteMode.WriteSchema)

  ' Rewind the memory stream.
  xmlStream.Position = 0

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

  ' Print out values in the table.
  PrintValues(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 PrintValues(ByVal table As DataTable, _
  ByVal label As String)
  Console.WriteLine(label)
  For Each row As DataRow In table.Rows
    For Each column As DataColumn In table.Columns
      Console.Write("{0}{1}", ControlChars.Tab, row(column))
    Next column
    Console.WriteLine()
  Next row
End Sub

설명

현재 DataTable 및 해당 하위 항목은 제공된 파일에 명명된 파일의 데이터와 함께 로드됩니다 XmlReader. 이 메서드의 동작은 메서드의 ReadXml 동작과 동일합니다. 단, 이 경우 데이터는 현재 테이블 및 해당 하위 항목에 대해서만 로드됩니다.

이 메서드는 ReadXml 데이터만 읽거나 XML 문서에서 데이터와 스키마 DataTable 를 모두 읽는 방법을 제공하는 반면 ReadXmlSchema , 메서드는 스키마만 읽습니다.

각 메서드와 WriteXmlSchema 메서드의 WriteXml 경우도 마찬가지입니다. XML 데이터 또는 스키마와 데이터를 DataTable모두 작성하려면 이 메서드를 WriteXml 사용합니다. 스키마만 작성하려면 메서드를 WriteXmlSchema 사용합니다.

참고

InvalidOperationException 경우의 열 형식에 throw 됩니다 합니다 DataRow 에서 읽거나 쓴 구현 되 IDynamicMetaObjectProvider 구현 하지 않습니다 IXmlSerializable합니다.

인라인 스키마가 지정된 경우 인라인 스키마는 데이터를 로드하기 전에 기존 관계형 구조를 확장하는 데 사용됩니다. 충돌이 있는 경우(예: 다른 데이터 형식으로 정의된 동일한 테이블의 동일한 열) 예외가 발생합니다.

인라인 스키마를 지정하지 않으면 XML 문서의 구조에 따라 필요에 따라 관계형 구조가 유추를 통해 확장됩니다. 모든 데이터를 노출하기 위해 유추를 통해 스키마를 확장할 수 없는 경우 예외가 발생합니다.

참고

합니다 DataSet 해당 XML 요소를 연결 하지 않으며 DataColumn 또는 DataTable serialize 된 xml에서 ("_")와 같은 유효한 XML 문자는 이스케이프 하는 경우. DataSet 그 자체는 XML 요소 이름에서 잘못된 XML 문자만 이스케이프하므로 동일한 문자만 사용할 수 있습니다. XML 요소 이름의 법적 문자를 이스케이프하면 처리하는 동안 요소가 무시됩니다.

추가 정보

적용 대상