Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

DataTable.WriteXmlSchema méthode

 

Date de publication : novembre 2016

Écrit la structure de données actuelle de le DataTable comme un schéma XML.

Espace de noms:   System.Data
Assembly:  System.Data (dans System.Data.dll)

NomDescription
System_CAPS_pubmethodWriteXmlSchema(Stream)

Écrit la structure de données actuelle de le DataTable comme un schéma XML dans le flux spécifié.

System_CAPS_pubmethodWriteXmlSchema(Stream, Boolean)

Écrit la structure de données actuelle de le DataTable comme un schéma XML dans le flux spécifié. Pour enregistrer le schéma pour la table et tous ses descendants, affectez le writeHierarchy paramètre true.

System_CAPS_pubmethodWriteXmlSchema(String)

Écrit la structure de données actuelle de le DataTable comme un schéma XML dans le fichier spécifié.

System_CAPS_pubmethodWriteXmlSchema(String, Boolean)

Écrit la structure de données actuelle de le DataTable comme un schéma XML dans le fichier spécifié. Pour enregistrer le schéma pour la table et tous ses descendants, affectez le writeHierarchy paramètre true.

System_CAPS_pubmethodWriteXmlSchema(TextWriter)

Écrit la structure de données actuelle de le DataTable comme un schéma XML à l’aide du TextWriter.

System_CAPS_pubmethodWriteXmlSchema(TextWriter, Boolean)

Écrit la structure de données actuelle de le DataTable comme un schéma XML à l’aide du TextWriter. Pour enregistrer le schéma pour la table et tous ses descendants, affectez le writeHierarchy paramètre true.

System_CAPS_pubmethodWriteXmlSchema(XmlWriter)

Écrit la structure de données actuelle de le DataTable comme un schéma XML à l’aide du XmlWriter.

System_CAPS_pubmethodWriteXmlSchema(XmlWriter, Boolean)

Écrit la structure de données actuelle de le DataTable comme un schéma XML à l’aide du XmlWriter. Pour enregistrer le schéma pour la table et tous ses descendants, affectez le writeHierarchy paramètre true.

Utilisez la WriteXmlSchema méthode pour écrire le schéma pour un DataTable à un document XML. Le schéma inclut des définitions de table, des relations et des contraintes.

Le schéma XML est écrit à l’aide de la norme XSD.

Pour écrire les données dans un document XML, utilisez la WriteXml méthode.

L’application console suivante crée deux DataTable instances, ajoute chacun d’eux à un DataSet, crée une DataRelation concernant les deux tables, puis utilise le WriteXmlSchema méthode pour écrire les données contenues dans la table parente à une TextWriter. L’exemple illustre le comportement lors de la configuration du writeHierarchy paramètre à chacun de ses valeurs.

System_CAPS_noteRemarque

Cet exemple montre comment utiliser une des versions surchargées de WriteXmlSchema pour d’autres exemples disponibles, consultez les rubriques de surcharge individuels.

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

L'exemple affiche la sortie suivante dans la fenêtre de console :

==============================
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>
Retour au début
Afficher: