Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

DataTable.WriteXml-Methode

Aktualisiert: November 2007

Schreibt den aktuellen Inhalt der DataTable als XML.

  NameBeschreibung
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(Stream) Schreibt den aktuellen Inhalt der DataTable als XML mit dem angegebenen Stream.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(TextWriter) Schreibt den aktuellen Inhalt der DataTable als XML mit dem angegebenen TextWriter.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(String) Schreibt den aktuellen Inhalt der DataTable als XML mit der angegebenen Datei.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(XmlWriter) Schreibt den aktuellen Inhalt der DataTable als XML mit dem angegebenen XmlWriter.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(Stream, Boolean) Schreibt den aktuellen Inhalt der DataTable als XML mit dem angegebenen Stream. Legen Sie zum Speichern der Daten für die Tabelle und ihre Nachfolgerelemente den writeHierarchy-Parameter auf true fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(Stream, XmlWriteMode) Schreibt im angegebenen XmlWriteMode die aktuellen Daten und bei Bedarf das Schema für die DataTable in die angegebene Datei. Um das Schema zu schreiben, legen Sie den Wert für den mode-Parameter auf WriteSchema fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(TextWriter, Boolean) Schreibt den aktuellen Inhalt der DataTable als XML mit dem angegebenen TextWriter. Legen Sie zum Speichern der Daten für die Tabelle und ihre Nachfolgerelemente den writeHierarchy-Parameter auf true fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(TextWriter, XmlWriteMode) Schreibt mit dem angegebenen TextWriter und im angegebenen XmlWriteMode die aktuellen Daten und bei Bedarf das Schema für die DataTable. Um das Schema zu schreiben, legen Sie den Wert für den mode-Parameter auf WriteSchema fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(String, Boolean) Schreibt den aktuellen Inhalt der DataTable als XML mit der angegebenen Datei. Legen Sie zum Speichern der Daten für die Tabelle und ihre Nachfolgerelemente den writeHierarchy-Parameter auf true fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(String, XmlWriteMode) Schreibt mit der angegebenen Datei und im angegebenen XmlWriteMode die aktuellen Daten und bei Bedarf das Schema für das DataTable. Um das Schema zu schreiben, legen Sie den Wert für den mode-Parameter auf WriteSchema fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(XmlWriter, Boolean) Schreibt den aktuellen Inhalt der DataTable als XML mit dem angegebenen XmlWriter.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(XmlWriter, XmlWriteMode) Schreibt mit dem angegebenen XmlWriter und im angegebenen XmlWriteMode die aktuellen Daten und bei Bedarf das Schema für die DataTable. Um das Schema zu schreiben, legen Sie den Wert für den mode-Parameter auf WriteSchema fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(Stream, XmlWriteMode, Boolean) Schreibt im angegebenen XmlWriteMode die aktuellen Daten und bei Bedarf das Schema für die DataTable in die angegebene Datei. Um das Schema zu schreiben, legen Sie den Wert für den mode-Parameter auf WriteSchema fest. Legen Sie zum Speichern der Daten für die Tabelle und ihre Nachfolgerelemente den writeHierarchy-Parameter auf true fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(TextWriter, XmlWriteMode, Boolean) Schreibt mit dem angegebenen TextWriter und im angegebenen XmlWriteMode die aktuellen Daten und bei Bedarf das Schema für die DataTable. Um das Schema zu schreiben, legen Sie den Wert für den mode-Parameter auf WriteSchema fest. Legen Sie zum Speichern der Daten für die Tabelle und ihre Nachfolgerelemente den writeHierarchy-Parameter auf true fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(String, XmlWriteMode, Boolean) Schreibt mit der angegebenen Datei und im angegebenen XmlWriteMode die aktuellen Daten und bei Bedarf das Schema für das DataTable. Um das Schema zu schreiben, legen Sie den Wert für den mode-Parameter auf WriteSchema fest. Legen Sie zum Speichern der Daten für die Tabelle und ihre Nachfolgerelemente den writeHierarchy-Parameter auf true fest.
xbadk5ed.pubmethod(de-de,VS.90).gif xbadk5ed.CFW(de-de,VS.90).gif xbadk5ed.xna(de-de,VS.90).gif WriteXml(XmlWriter, XmlWriteMode, Boolean) Schreibt mit dem angegebenen XmlWriter und im angegebenen XmlWriteMode die aktuellen Daten und bei Bedarf das Schema für die DataTable. Um das Schema zu schreiben, legen Sie den Wert für den mode-Parameter auf WriteSchema fest. Legen Sie zum Speichern der Daten für die Tabelle und ihre Nachfolgerelemente den writeHierarchy-Parameter auf true fest.
Zum Seitenanfang

Mit der WriteXml-Methode können Sie entweder ausschließlich Daten oder sowohl Daten als auch das Schema aus einem DataTable in ein XML-Dokument schreiben, während mit der WriteXmlSchema-Methode nur das Schema geschrieben wird. Um sowohl Daten als auch das Schema zu schreiben, verwenden Sie eine der Überladungen, die den XmlWriteMode-Parameter enthält, und legen Sie dessen Wert auf WriteSchema fest.

Beachten Sie, dass dies auch für die ReadXml-Methode und die ReadXmlSchema-Methode gilt. Verwenden Sie die ReadXml-Methode, um ausschließlich XML-Daten oder sowohl XML-Daten als auch das XML-Schema in das DataTable zu lesen. Verwenden Sie die ReadXmlSchema-Methode, um nur das Schema zu lesen.

Die folgende Konsolenanwendung erstellt zwei DataTable-Instanzen, fügt jede einem DataSet hinzu, erstellt eine DataRelation, die eine Beziehung zwischen den beiden Tabellen herstellt, und verwendet dann die WriteXml-Methode, um die Daten innerhalb der übergeordneten Tabelle in einen TextWriter zu schreiben. Im Beispiel wird das Verhalten beim Festlegen des writeHierarchy-Parameters auf jeden seiner Werte veranschaulicht.

xbadk5ed.alert_note(de-de,VS.90).gifHinweis:

In diesem Beispiel wird die Verwendung einer der überladenen Versionen von WriteXml veranschaulicht. Weitere evtl. verfügbare Beispiele finden Sie in den Themen zu den einzelnen Überladungen.

static void Main()
{
    DataSet ds = new DataSet();
    DataTable customerTable = GetCustomers();
    DataTable orderTable = GetOrders();

    ds.Tables.Add(customerTable);
    ds.Tables.Add(orderTable);
    ds.Relations.Add("CustomerOrder",
        new DataColumn[] { customerTable.Columns[0] },
        new DataColumn[] { orderTable.Columns[1] }, true);

    System.IO.StringWriter writer = new System.IO.StringWriter();
    customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, false);
    PrintOutput(writer, "Customer table, without hierarchy");

    writer = new System.IO.StringWriter();
    customerTable.WriteXml(writer, XmlWriteMode.WriteSchema, true);
    PrintOutput(writer, "Customer table, with hierarchy");

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static DataTable GetCustomers()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create two columns, ID and Name.
    DataColumn idColumn = table.Columns.Add("ID", typeof(System.Int32));
    table.Columns.Add("Name", typeof(System.String));

    // Set the ID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { idColumn };

    table.Rows.Add(new object[] { 1, "Mary" });
    table.Rows.Add(new object[] { 2, "Andy" });
    table.Rows.Add(new object[] { 3, "Peter" });
    table.Rows.Add(new object[] { 4, "Russ" });
    table.AcceptChanges();
    return table;
}

private static DataTable GetOrders()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create three columns; OrderID, CustomerID, and OrderDate.
    table.Columns.Add(new DataColumn("OrderID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("CustomerID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("OrderDate", typeof(System.DateTime)));

    // Set the OrderID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { table.Columns[0] };

    table.Rows.Add(new object[] { 1, 1, "12/2/2003" });
    table.Rows.Add(new object[] { 2, 1, "1/3/2004" });
    table.Rows.Add(new object[] { 3, 2, "11/13/2004" });
    table.Rows.Add(new object[] { 4, 3, "5/16/2004" });
    table.Rows.Add(new object[] { 5, 3, "5/22/2004" });
    table.Rows.Add(new object[] { 6, 4, "6/15/2004" });
    table.AcceptChanges();
    return table;
}

private static void PrintOutput(System.IO.TextWriter writer, string caption)
{
    Console.WriteLine("==============================");
    Console.WriteLine(caption);
    Console.WriteLine("==============================");
    Console.WriteLine(writer.ToString());
}


Das Beispiel zeigt die folgende Ausgabe im Konsolenfenster an:

==============================
Customer table, without hierarchy
==============================
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema
" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Table1">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:int" />
                <xs:element name="Name" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//Table1" />
        <xs:field xpath="ID" />
      </xs:unique>
    </xs:element>
  </xs:schema>
  <Table1>
    <ID>1</ID>
    <Name>Mary</Name>
  </Table1>
  <Table1>
    <ID>2</ID>
    <Name>Andy</Name>
  </Table1>
  <Table1>
    <ID>3</ID>
    <Name>Peter</Name>
  </Table1>
  <Table1>
    <ID>4</ID>
    <Name>Russ</Name>
  </Table1>
</NewDataSet>
==============================
Customer table, with hierarchy
==============================
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema
" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Table1">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:int" />
                <xs:element name="Name" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="Table2">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="OrderID" type="xs:int" />
                <xs:element name="CustomerID" type="xs:int" minOccurs="0" />
                <xs:element name="OrderDate" type="xs:dateTime" minOccurs="0" />

              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//Table1" />
        <xs:field xpath="ID" />
      </xs:unique>
      <xs:unique name="Table2_Constraint1" msdata:ConstraintName="Constraint1" m
sdata:PrimaryKey="true">
        <xs:selector xpath=".//Table2" />
        <xs:field xpath="OrderID" />
      </xs:unique>
      <xs:keyref name="CustomerOrder" refer="Constraint1">
        <xs:selector xpath=".//Table2" />
        <xs:field xpath="CustomerID" />
      </xs:keyref>
    </xs:element>
  </xs:schema>
  <Table1>
    <ID>1</ID>
    <Name>Mary</Name>
  </Table1>
  <Table1>
    <ID>2</ID>
    <Name>Andy</Name>
  </Table1>
  <Table1>
    <ID>3</ID>
    <Name>Peter</Name>
  </Table1>
  <Table1>
    <ID>4</ID>
    <Name>Russ</Name>
  </Table1>
  <Table2>
    <OrderID>1</OrderID>
    <CustomerID>1</CustomerID>
    <OrderDate>2003-12-02T00:00:00.0000000-08:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>2</OrderID>
    <CustomerID>1</CustomerID>
    <OrderDate>2004-01-03T00:00:00.0000000-08:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>3</OrderID>
    <CustomerID>2</CustomerID>
    <OrderDate>2004-11-13T00:00:00.0000000-08:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>4</OrderID>
    <CustomerID>3</CustomerID>
    <OrderDate>2004-05-16T00:00:00.0000000-07:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>5</OrderID>
    <CustomerID>3</CustomerID>
    <OrderDate>2004-05-22T00:00:00.0000000-07:00</OrderDate>
  </Table2>
  <Table2>
    <OrderID>6</OrderID>
    <CustomerID>4</CustomerID>
    <OrderDate>2004-06-15T00:00:00.0000000-07:00</OrderDate>
  </Table2>
</NewDataSet>
Anzeigen: