DataTable.WriteXmlSchema 方法

定义

DataTable 的当前数据结构以 XML 架构形式写入。Writes the current data structure of the DataTable as an XML schema.

重载

WriteXmlSchema(Stream)

以 XML 架构的形式将 DataTable 的当前数据结构写入指定的流。Writes the current data structure of the DataTable as an XML schema to the specified stream.

WriteXmlSchema(TextWriter)

使用指定的 DataTable 以 XML 架构的形式写入 TextWriter 的当前数据结构。Writes the current data structure of the DataTable as an XML schema using the specified TextWriter.

WriteXmlSchema(String)

以 XML 架构的形式将 DataTable 的当前数据结构写入指定的文件。Writes the current data structure of the DataTable as an XML schema to the specified file.

WriteXmlSchema(XmlWriter)

使用指定的 DataTable 以 XML 架构的形式写入 XmlWriter 的当前数据结构。Writes the current data structure of the DataTable as an XML schema using the specified XmlWriter.

WriteXmlSchema(Stream, Boolean)

以 XML 架构的形式将 DataTable 的当前数据结构写入指定的流。Writes the current data structure of the DataTable as an XML schema to the specified stream. 若要保存该表及其所有子代的架构,请将 writeHierarchy 参数设置为 trueTo save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXmlSchema(TextWriter, Boolean)

使用指定的 DataTable 以 XML 架构的形式写入 TextWriter 的当前数据结构。Writes the current data structure of the DataTable as an XML schema using the specified TextWriter. 若要保存该表及其所有子代的架构,请将 writeHierarchy 参数设置为 trueTo save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXmlSchema(XmlWriter, Boolean)

使用指定的 DataTable 以 XML 架构的形式写入 XmlWriter 的当前数据结构。Writes the current data structure of the DataTable as an XML schema using the specified XmlWriter. 若要保存该表及其所有子代的架构,请将 writeHierarchy 参数设置为 trueTo save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXmlSchema(String, Boolean)

以 XML 架构的形式将 DataTable 的当前数据结构写入指定的文件。Writes the current data structure of the DataTable as an XML schema to the specified file. 若要保存该表及其所有子代的架构,请将 writeHierarchy 参数设置为 trueTo save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

示例

下面的控制台应用程序创建两个 DataTable 实例,将每个实例添加到 DataSet中,创建一个与两个表关联的 DataRelation,然后使用 WriteXmlSchema 方法将父表中包含的数据写入 TextWriterThe following console application creates two DataTable instances, adds each to a DataSet, creates a DataRelation relating the two tables, and then uses the WriteXmlSchema method to write the data contained within the parent table to a TextWriter. 该示例演示将 writeHierarchy 参数设置为其每个值时的行为。The example demonstrates the behavior when setting the writeHierarchy parameter to each of its values.

备注

此示例演示如何使用 WriteXmlSchema 的某个重载版本来了解可能可用的其他示例,请参阅各个重载主题。This example shows how to use one of the overloaded versions of WriteXmlSchema For other examples that might be available, see the individual overload topics.

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.WriteXmlSchema(writer, false);
    PrintOutput(writer, "Customer table, without hierarchy");

    writer = new System.IO.StringWriter();
    customerTable.WriteXmlSchema(writer, 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());
}
Sub Main()
  Dim ds As New DataSet
  Dim customerTable As DataTable = GetCustomers()
  Dim orderTable As DataTable = GetOrders()

  ds.Tables.Add(customerTable)
  ds.Tables.Add(orderTable)
  ds.Relations.Add("CustomerOrder", _
   New DataColumn() {customerTable.Columns(0)}, _
   New DataColumn() {orderTable.Columns(1)}, True)

  Dim writer As New System.IO.StringWriter
  customerTable.WriteXmlSchema(writer, False)
  PrintOutput(writer, "Customer table, without hierarchy")

  writer = New System.IO.StringWriter
  customerTable.WriteXmlSchema(writer, True)
  PrintOutput(writer, "Customer table, with hierarchy")

  Console.WriteLine("Press any key to continue.")
  Console.ReadKey()
End Sub

Private Function GetOrders() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create three columns, OrderID, CustomerID, and OrderDate.
  table.Columns.Add(New DataColumn("OrderID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("CustomerID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("OrderDate", GetType(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
End Function

Private Function GetCustomers() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create two columns, ID and Name.
  Dim idColumn As DataColumn = table.Columns.Add("ID", GetType(System.Int32))
  table.Columns.Add("Name", GetType(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
End Function

Private Sub PrintOutput( _
   ByVal writer As System.IO.TextWriter, ByVal caption As String)

  Console.WriteLine("==============================")
  Console.WriteLine(caption)
  Console.WriteLine("==============================")
  Console.WriteLine(writer.ToString())
End Sub

该示例在控制台窗口中显示以下输出:The example displays the following output in the console window:

==============================  
Customer table, without hierarchy  
==============================  
<?xml version="1.0" encoding="utf-16"?>  
<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="Ta  
ble1">  
    <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>  
==============================  
Customer table, with hierarchy  
==============================  
<?xml version="1.0" encoding="utf-16"?>  
<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" msdata: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>  

注解

使用 WriteXmlSchema 方法将 DataTable 的架构写入 XML 文档。Use the WriteXmlSchema method to write the schema for a DataTable to an XML document. 此架构包括表、关系和约束定义。The schema includes table, relation, and constraint definitions.

使用 XSD 标准编写 XML 架构。The XML schema is written using the XSD standard.

若要将数据写入 XML 文档,请使用 WriteXml 方法。To write the data to an XML document, use the WriteXml method.

WriteXmlSchema(Stream)

以 XML 架构的形式将 DataTable 的当前数据结构写入指定的流。Writes the current data structure of the DataTable as an XML schema to the specified stream.

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

参数

stream
Stream

要向其写入 XML 架构的流。The stream to which the XML schema will be written.

注解

使用 WriteXmlSchema 方法将 DataTable 的架构写入 XML 文档。Use the WriteXmlSchema method to write the schema for a DataTable to an XML document. 此架构包括表、关系和约束定义。The schema includes table, relation, and constraint definitions.

使用 XSD 标准编写 XML 架构。The XML schema is written using the XSD standard.

若要将数据写入 XML 文档,请使用 WriteXml 方法。To write the data to an XML document, use the WriteXml method.

另请参阅

WriteXmlSchema(TextWriter)

使用指定的 DataTable 以 XML 架构的形式写入 TextWriter 的当前数据结构。Writes the current data structure of the DataTable as an XML schema using the specified TextWriter.

public:
 void WriteXmlSchema(System::IO::TextWriter ^ writer);
public void WriteXmlSchema (System.IO.TextWriter writer);
member this.WriteXmlSchema : System.IO.TextWriter -> unit
Public Sub WriteXmlSchema (writer As TextWriter)

参数

writer
TextWriter

用于编写的 TextWriterThe TextWriter with which to write.

注解

使用 WriteXmlSchema 方法将 DataTable 的架构写入 XML 文档。Use the WriteXmlSchema method to write the schema for a DataTable to an XML document. 此架构包括表、关系和约束定义。The schema includes table, relation, and constraint definitions.

使用 XSD 标准编写 XML 架构。The XML schema is written using the XSD standard.

若要将数据写入 XML 文档,请使用 WriteXml 方法。To write the data to an XML document, use the WriteXml method.

另请参阅

WriteXmlSchema(String)

以 XML 架构的形式将 DataTable 的当前数据结构写入指定的文件。Writes the current data structure of the DataTable as an XML schema to the specified file.

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

参数

fileName
String

要使用的文件的名称。The name of the file to use.

注解

使用 WriteXmlSchema 方法将 DataTable 的架构写入 XML 文档。Use the WriteXmlSchema method to write the schema for a DataTable to an XML document. 此架构包括表、关系和约束定义。The schema includes table, relation, and constraint definitions.

使用 XSD 标准编写 XML 架构。The XML schema is written using the XSD standard.

若要将数据写入 XML 文档,请使用 WriteXml 方法。To write the data to an XML document, use the WriteXml method.

另请参阅

WriteXmlSchema(XmlWriter)

使用指定的 DataTable 以 XML 架构的形式写入 XmlWriter 的当前数据结构。Writes the current data structure of the DataTable as an XML schema using the specified XmlWriter.

public:
 void WriteXmlSchema(System::Xml::XmlWriter ^ writer);
public void WriteXmlSchema (System.Xml.XmlWriter writer);
member this.WriteXmlSchema : System.Xml.XmlWriter -> unit
Public Sub WriteXmlSchema (writer As XmlWriter)

参数

writer
XmlWriter

要使用的 XmlWriterThe XmlWriter to use.

注解

使用 WriteXmlSchema 方法将 DataTable 的架构写入 XML 文档。Use the WriteXmlSchema method to write the schema for a DataTable to an XML document. 此架构包括表、关系和约束定义。The schema includes table, relation, and constraint definitions.

使用 XSD 标准编写 XML 架构。The XML schema is written using the XSD standard.

若要将数据写入 XML 文档,请使用 WriteXml 方法。To write the data to an XML document, use the WriteXml method.

另请参阅

WriteXmlSchema(Stream, Boolean)

以 XML 架构的形式将 DataTable 的当前数据结构写入指定的流。Writes the current data structure of the DataTable as an XML schema to the specified stream. 若要保存该表及其所有子代的架构,请将 writeHierarchy 参数设置为 trueTo save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

public:
 void WriteXmlSchema(System::IO::Stream ^ stream, bool writeHierarchy);
public void WriteXmlSchema (System.IO.Stream stream, bool writeHierarchy);
member this.WriteXmlSchema : System.IO.Stream * bool -> unit

参数

stream
Stream

要向其写入 XML 架构的流。The stream to which the XML schema will be written.

writeHierarchy
Boolean

如果为 true,则写入当前表及其所有子代的架构。If true, write the schema of the current table and all its descendants. 如果为 false(默认值),则只写入当前表的架构。If false (the default value), write the schema for the current table only.

注解

使用 WriteXmlSchema 方法将 DataTable 的架构写入 XML 文档。Use the WriteXmlSchema method to write the schema for a DataTable to an XML document. 此架构包括表、关系和约束定义。The schema includes table, relation, and constraint definitions.

使用 XSD 标准编写 XML 架构。The XML schema is written using the XSD standard.

若要将数据写入 XML 文档,请使用 WriteXml 方法。To write the data to an XML document, use the WriteXml method.

通常,WriteXmlSchema 方法只写入当前表的架构。Normally the WriteXmlSchema method writes the schema only for the current table. 若要写入当前表及其整个子代的相关表的架构,请调用方法,将 writeHierarchy 参数设置为 trueTo write the schema for the current table and its entire descendant, related tables, call the method with the writeHierarchy parameter set to true.

另请参阅

WriteXmlSchema(TextWriter, Boolean)

使用指定的 DataTable 以 XML 架构的形式写入 TextWriter 的当前数据结构。Writes the current data structure of the DataTable as an XML schema using the specified TextWriter. 若要保存该表及其所有子代的架构,请将 writeHierarchy 参数设置为 trueTo save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

public:
 void WriteXmlSchema(System::IO::TextWriter ^ writer, bool writeHierarchy);
public void WriteXmlSchema (System.IO.TextWriter writer, bool writeHierarchy);
member this.WriteXmlSchema : System.IO.TextWriter * bool -> unit
Public Sub WriteXmlSchema (writer As TextWriter, writeHierarchy As Boolean)

参数

writer
TextWriter

用于编写的 TextWriterThe TextWriter with which to write.

writeHierarchy
Boolean

如果为 true,则写入当前表及其所有子代的架构。If true, write the schema of the current table and all its descendants. 如果为 false(默认值),则只写入当前表的架构。If false (the default value), write the schema for the current table only.

示例

下面的控制台应用程序创建两个 DataTable 实例,将每个实例添加到 DataSet中,创建一个与两个表关联的 DataRelation,然后使用 WriteXmlSchema 方法将父表中包含的数据写入 TextWriterThe following console application creates two DataTable instances, adds each to a DataSet, creates a DataRelation relating the two tables, and then uses the WriteXmlSchema method to write the data contained within the parent table to a TextWriter. 该示例演示将 writeHierarchy 参数设置为其每个值时的行为。The example demonstrates the behavior when setting the writeHierarchy parameter to each of its values.

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.WriteXmlSchema(writer, false);
    PrintOutput(writer, "Customer table, without hierarchy");

    writer = new System.IO.StringWriter();
    customerTable.WriteXmlSchema(writer, 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());
}
Sub Main()
  Dim ds As New DataSet
  Dim customerTable As DataTable = GetCustomers()
  Dim orderTable As DataTable = GetOrders()

  ds.Tables.Add(customerTable)
  ds.Tables.Add(orderTable)
  ds.Relations.Add("CustomerOrder", _
   New DataColumn() {customerTable.Columns(0)}, _
   New DataColumn() {orderTable.Columns(1)}, True)

  Dim writer As New System.IO.StringWriter
  customerTable.WriteXmlSchema(writer, False)
  PrintOutput(writer, "Customer table, without hierarchy")

  writer = New System.IO.StringWriter
  customerTable.WriteXmlSchema(writer, True)
  PrintOutput(writer, "Customer table, with hierarchy")

  Console.WriteLine("Press any key to continue.")
  Console.ReadKey()
End Sub

Private Function GetOrders() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create three columns, OrderID, CustomerID, and OrderDate.
  table.Columns.Add(New DataColumn("OrderID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("CustomerID", GetType(System.Int32)))
  table.Columns.Add(New DataColumn("OrderDate", GetType(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
End Function

Private Function GetCustomers() As DataTable
  ' Create sample Customers table, in order
  ' to demonstrate the behavior of the DataTableReader.
  Dim table As New DataTable

  ' Create two columns, ID and Name.
  Dim idColumn As DataColumn = table.Columns.Add("ID", _
      GetType(System.Int32))
  table.Columns.Add("Name", GetType(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
End Function

Private Sub PrintOutput( _
   ByVal writer As System.IO.TextWriter, ByVal caption As String)

  Console.WriteLine("==============================")
  Console.WriteLine(caption)
  Console.WriteLine("==============================")
  Console.WriteLine(writer.ToString())
End Sub

该示例在控制台窗口中显示以下输出:The example displays the following output in the console window:

==============================  
Customer table, without hierarchy  
==============================  
<?xml version="1.0" encoding="utf-16"?>  
<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="Ta  
ble1">  
    <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>  
==============================  
Customer table, with hierarchy  
==============================  
<?xml version="1.0" encoding="utf-16"?>  
<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" msdata: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>  

注解

使用 WriteXmlSchema 方法将 DataTable 的架构写入 XML 文档。Use the WriteXmlSchema method to write the schema for a DataTable to an XML document. 此架构包括表、关系和约束定义。The schema includes table, relation, and constraint definitions.

使用 XSD 标准编写 XML 架构。The XML schema is written using the XSD standard.

若要将数据写入 XML 文档,请使用 WriteXml 方法。To write the data to an XML document, use the WriteXml method.

通常,WriteXmlSchema 方法只写入当前表的架构。Normally the WriteXmlSchema method writes the schema only for the current table. 若要写入当前表及其整个子代的相关表的架构,请调用方法,将 writeHierarchy 参数设置为 trueTo write the schema for the current table and its entire descendant, related tables, call the method with the writeHierarchy parameter set to true.

另请参阅

WriteXmlSchema(XmlWriter, Boolean)

使用指定的 DataTable 以 XML 架构的形式写入 XmlWriter 的当前数据结构。Writes the current data structure of the DataTable as an XML schema using the specified XmlWriter. 若要保存该表及其所有子代的架构,请将 writeHierarchy 参数设置为 trueTo save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

public:
 void WriteXmlSchema(System::Xml::XmlWriter ^ writer, bool writeHierarchy);
public void WriteXmlSchema (System.Xml.XmlWriter writer, bool writeHierarchy);
member this.WriteXmlSchema : System.Xml.XmlWriter * bool -> unit
Public Sub WriteXmlSchema (writer As XmlWriter, writeHierarchy As Boolean)

参数

writer
XmlWriter

用于写入文档的 XmlWriterThe XmlWriter used to write the document.

writeHierarchy
Boolean

如果为 true,则写入当前表及其所有子代的架构。If true, write the schema of the current table and all its descendants. 如果为 false(默认值),则只写入当前表的架构。If false (the default value), write the schema for the current table only.

注解

使用 WriteXmlSchema 方法将 DataTable 的架构写入 XML 文档。Use the WriteXmlSchema method to write the schema for a DataTable to an XML document. 此架构包括表、关系和约束定义。The schema includes table, relation, and constraint definitions.

使用 XSD 标准编写 XML 架构。The XML schema is written using the XSD standard.

若要将数据写入 XML 文档,请使用 WriteXml 方法。To write the data to an XML document, use the WriteXml method.

通常,WriteXmlSchema 方法只写入当前表的架构。Normally the WriteXmlSchema method writes the schema only for the current table. 若要写入当前表及其整个子代的相关表的架构,请调用方法,将 writeHierarchy 参数设置为 trueTo write the schema for the current table and its entire descendant, related tables, call the method with the writeHierarchy parameter set to true.

另请参阅

WriteXmlSchema(String, Boolean)

以 XML 架构的形式将 DataTable 的当前数据结构写入指定的文件。Writes the current data structure of the DataTable as an XML schema to the specified file. 若要保存该表及其所有子代的架构,请将 writeHierarchy 参数设置为 trueTo save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

public:
 void WriteXmlSchema(System::String ^ fileName, bool writeHierarchy);
public void WriteXmlSchema (string fileName, bool writeHierarchy);
member this.WriteXmlSchema : string * bool -> unit
Public Sub WriteXmlSchema (fileName As String, writeHierarchy As Boolean)

参数

fileName
String

要使用的文件的名称。The name of the file to use.

writeHierarchy
Boolean

如果为 true,则写入当前表及其所有子代的架构。If true, write the schema of the current table and all its descendants. 如果为 false(默认值),则只写入当前表的架构。If false (the default value), write the schema for the current table only.

注解

使用 WriteXmlSchema 方法将 DataTable 的架构写入 XML 文档。Use the WriteXmlSchema method to write the schema for a DataTable to an XML document. 此架构包括表、关系和约束定义。The schema includes table, relation, and constraint definitions.

使用 XSD 标准编写 XML 架构。The XML schema is written using the XSD standard.

若要将数据写入 XML 文档,请使用 WriteXml 方法。To write the data to an XML document, use the WriteXml method.

通常,WriteXmlSchema 方法只写入当前表的架构。Normally the WriteXmlSchema method writes the schema only for the current table. 若要写入当前表及其整个子代的相关表的架构,请调用方法,将 writeHierarchy 参数设置为 trueTo write the schema for the current table and its entire descendant, related tables, call the method with the writeHierarchy parameter set to true.

另请参阅

适用于