Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método DataTable.WriteXmlSchema

 

Publicado: octubre de 2016

Escribe la estructura de datos actual de la DataTable como un esquema XML.

Espacio de nombres:   System.Data
Ensamblado:  System.Data (en System.Data.dll)

NombreDescripción
System_CAPS_pubmethodWriteXmlSchema(Stream)

Escribe la estructura de datos actual de la DataTable como un esquema XML en la secuencia especificada.

System_CAPS_pubmethodWriteXmlSchema(Stream, Boolean)

Escribe la estructura de datos actual de la DataTable como un esquema XML en la secuencia especificada. Para guardar el esquema de la tabla y todos sus descendientes, establezca el writeHierarchy parámetro true.

System_CAPS_pubmethodWriteXmlSchema(String)

Escribe la estructura de datos actual de la DataTable como un esquema XML en el archivo especificado.

System_CAPS_pubmethodWriteXmlSchema(String, Boolean)

Escribe la estructura de datos actual de la DataTable como un esquema XML en el archivo especificado. Para guardar el esquema de la tabla y todos sus descendientes, establezca el writeHierarchy parámetro true.

System_CAPS_pubmethodWriteXmlSchema(TextWriter)

Escribe la estructura de datos actual de la DataTable como un esquema XML usando el objeto TextWriter.

System_CAPS_pubmethodWriteXmlSchema(TextWriter, Boolean)

Escribe la estructura de datos actual de la DataTable como un esquema XML usando el objeto TextWriter. Para guardar el esquema de la tabla y todos sus descendientes, establezca el writeHierarchy parámetro true.

System_CAPS_pubmethodWriteXmlSchema(XmlWriter)

Escribe la estructura de datos actual de la DataTable como un esquema XML usando el objeto XmlWriter.

System_CAPS_pubmethodWriteXmlSchema(XmlWriter, Boolean)

Escribe la estructura de datos actual de la DataTable como un esquema XML usando el objeto XmlWriter. Para guardar el esquema de la tabla y todos sus descendientes, establezca el writeHierarchy parámetro true.

Utilice la WriteXmlSchema método para escribir el esquema para un DataTable a un documento XML. El esquema incluye definiciones de tabla, relaciones y restricciones.

El esquema XML se escribe mediante el estándar XSD.

Para escribir los datos en un documento XML, utilice el WriteXml método.

La aplicación de consola siguiente crea dos DataTable instancias, agrega cada uno a un DataSet, crea un DataRelation relacionar las dos tablas y, a continuación, utiliza el WriteXmlSchema método para escribir los datos contenidos en la tabla primaria a una TextWriter. En el ejemplo se muestra el comportamiento al establecer el writeHierarchy parámetro a cada uno de sus valores.

System_CAPS_noteNota

Este ejemplo muestra cómo utilizar una de las versiones sobrecargadas de WriteXmlSchema para otros ejemplos que podrían estar disponibles, vea los temas de sobrecarga individuales.

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());
}

En el ejemplo se muestra el siguiente resultado en la ventana de consola:

==============================
Customer table, without hierarchy
==============================
<?xml version="1.0" encoding="utf-16"?>
<xs:schema id="NewDataSet" 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: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>
Volver al principio
Mostrar: