Partager via


DataSet.ReadXml Méthode

Définition

Lit le schéma et les données XML dans le DataSet.

Surcharges

ReadXml(XmlReader, XmlReadMode)

Lit le schéma et les données XML dans le DataSet à l'aide des XmlReader et XmlReadMode spécifiés.

ReadXml(String, XmlReadMode)

Lit le schéma et les données XML dans le DataSet à l'aide du fichier et du XmlReadMode spécifiés.

ReadXml(Stream, XmlReadMode)

Lit le schéma et les données XML dans le DataSet à l'aide des Stream et XmlReadMode spécifiés.

ReadXml(TextReader, XmlReadMode)

Lit le schéma et les données XML dans le DataSet à l'aide des TextReader et XmlReadMode spécifiés.

ReadXml(String)

Lit le schéma et les données XML dans le DataSet à l'aide du fichier spécifié.

ReadXml(TextReader)

Lit le schéma et les données XML dans le DataSet à l'aide du TextReader spécifié.

ReadXml(Stream)

Lit le schéma et les données XML dans le DataSet à l'aide du Stream spécifié.

ReadXml(XmlReader)

Lit le schéma et les données XML dans le DataSet à l'aide du XmlReader spécifié.

ReadXml(XmlReader, XmlReadMode)

Source:
DataSet.cs
Source:
DataSet.cs
Source:
DataSet.cs

Lit le schéma et les données XML dans le DataSet à l'aide des XmlReader et XmlReadMode spécifiés.

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

Paramètres

reader
XmlReader

XmlReader dans lequel effectuer la lecture.

mode
XmlReadMode

Une des valeurs de l'objet XmlReadMode.

Retours

XmlReadMode utilisé pour lire les données.

Remarques

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataSet document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire à la fois les données et le schéma, utilisez l’une ReadXML des surcharges qui inclut le mode paramètre et définissez sa valeur sur ReadSchema.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataSetutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Si le schéma XML d’un DataSet inclut un targetNamespace, les données peuvent ne pas être lues et vous pouvez rencontrer des exceptions lors de l’appel ReadXml pour charger le avec xml DataSet qui contient des éléments sans espace de noms éligible. Pour lire des éléments non qualifiés, définissez la valeur elementFormDefault « qualifié » dans votre schéma XML, comme le montre l’exemple suivant.

<xsd:schema id="MyDataSet"
   elementFormDefault="qualified"
   targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
   xmlns="http://www.tempuri.org/MyDataSet.xsd"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>

Notes

Si le schéma de votre DataSet contient des éléments du même nom, mais de type différent, dans le même espace de noms, une exception est levée lorsque vous tentez de lire le schéma dans le DataSet avec ReadXml en spécifiant XmlReadMode.ReadSchema. Cette exception ne se produit pas si vous utilisez .NET Framework version 1.0.

Voir aussi

S’applique à

ReadXml(String, XmlReadMode)

Source:
DataSet.cs
Source:
DataSet.cs
Source:
DataSet.cs

Lit le schéma et les données XML dans le DataSet à l'aide du fichier et du XmlReadMode spécifiés.

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

Paramètres

fileName
String

Nom du fichier (chemin d'accès inclus) à partir duquel effectuer la lecture.

mode
XmlReadMode

Une des valeurs de l'objet XmlReadMode.

Retours

XmlReadMode utilisé pour lire les données.

Exceptions

Remarques

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataSet document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire à la fois les données et le schéma, utilisez l’une ReadXML des surcharges qui inclut le mode paramètre et définissez sa valeur sur ReadSchema.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataSetutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Si le schéma XML d’un DataSet inclut un targetNamespace, les données peuvent ne pas être lues et vous pouvez rencontrer des exceptions lors de l’appel ReadXml pour charger le avec xml DataSet qui contient des éléments sans espace de noms éligible. Pour lire des éléments non qualifiés, définissez la valeur elementFormDefault « qualifié » dans votre schéma XML, comme le montre l’exemple suivant.

<xsd:schema id="MyDataSet"
   elementFormDefault="qualified"
   targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
   xmlns="http://www.tempuri.org/MyDataSet.xsd"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>

Notes

Si le schéma de votre DataSet contient des éléments du même nom, mais de type différent, dans le même espace de noms, une exception est levée lorsque vous tentez de lire le schéma dans le DataSet avec ReadXml en spécifiant XmlReadMode.ReadSchema. Cette exception ne se produit pas si vous utilisez .NET Framework version 1.0.

Voir aussi

S’applique à

ReadXml(Stream, XmlReadMode)

Source:
DataSet.cs
Source:
DataSet.cs
Source:
DataSet.cs

Lit le schéma et les données XML dans le DataSet à l'aide des Stream et XmlReadMode spécifiés.

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

Paramètres

stream
Stream

Stream dans lequel effectuer la lecture.

mode
XmlReadMode

Une des valeurs de l'objet XmlReadMode.

Retours

XmlReadMode utilisé pour lire les données.

Remarques

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataSet document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire à la fois les données et le schéma, utilisez l’une ReadXML des surcharges qui inclut le mode paramètre et définissez sa valeur sur ReadSchema.

Il en est de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataSetutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Lorsque vous utilisez ReadXml et que vous définissez XmlReadModeDiffgramsur , le contenu de la cible DataSet et de l’original DataSet peut différer en raison de la façon dont le diffgramme est généré et traité. Pour plus d’informations sur les diffgrammes, consultez DiffGrams.

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Si le schéma XML d’un DataSet inclut targetNamespace, les données peuvent ne pas être lues et vous pouvez rencontrer des exceptions lors de l’appel ReadXml pour charger le avec xml DataSet qui contient des éléments sans espace de noms éligible. Pour lire des éléments non qualifiés, définissez la valeur elementFormDefault « qualifié » dans votre schéma XML, comme le montre l’exemple suivant.

<xsd:schema id="MyDataSet"
   elementFormDefault="qualified"
   targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
   xmlns="http://www.tempuri.org/MyDataSet.xsd"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>

Notes

Si le schéma de votre DataSet contient des éléments du même nom, mais de type différent, dans le même espace de noms, une exception est levée lorsque vous tentez de lire le schéma dans le DataSet avec ReadXml en spécifiant XmlReadMode.ReadSchema. Cette exception ne se produit pas si vous utilisez .NET Framework version 1.0.

Voir aussi

S’applique à

ReadXml(TextReader, XmlReadMode)

Source:
DataSet.cs
Source:
DataSet.cs
Source:
DataSet.cs

Lit le schéma et les données XML dans le DataSet à l'aide des TextReader et XmlReadMode spécifiés.

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

Paramètres

reader
TextReader

TextReader dans lequel effectuer la lecture.

mode
XmlReadMode

Une des valeurs de l'objet XmlReadMode.

Retours

XmlReadMode utilisé pour lire les données.

Remarques

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataSet document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire à la fois les données et le schéma, utilisez l’une ReadXML des surcharges qui inclut le mode paramètre et définissez sa valeur sur ReadSchema.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataSetutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Si le schéma XML d’un DataSet inclut targetNamespace, les données peuvent ne pas être lues et vous pouvez rencontrer des exceptions lors de l’appel ReadXml pour charger le avec xml DataSet qui contient des éléments sans espace de noms éligible. Pour lire des éléments non qualifiés, définissez la valeur elementFormDefault « qualifié » dans votre schéma XML, comme le montre l’exemple suivant.

<xsd:schema id="MyDataSet"
   elementFormDefault="qualified"
   targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
   xmlns="http://www.tempuri.org/MyDataSet.xsd"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>

Notes

Si le schéma de votre DataSet contient des éléments du même nom, mais de type différent, dans le même espace de noms, une exception est levée lorsque vous tentez de lire le schéma dans le DataSet avec ReadXml en spécifiant XmlReadMode.ReadSchema. Cette exception ne se produit pas si vous utilisez .NET Framework version 1.0.

Voir aussi

S’applique à

ReadXml(String)

Source:
DataSet.cs
Source:
DataSet.cs
Source:
DataSet.cs

Lit le schéma et les données XML dans le DataSet à l'aide du fichier spécifié.

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

Paramètres

fileName
String

Nom du fichier (chemin d'accès inclus) à partir duquel effectuer la lecture.

Retours

XmlReadMode utilisé pour lire les données.

Exceptions

Exemples

L’exemple suivant crée d’abord un simple DataSet avec une DataTable, deux colonnes et dix lignes. Le DataSet schéma et les données sont écrits sur le disque en appelant la WriteXml méthode . Un second DataSet est créé et la ReadXml méthode est utilisée pour le remplir de schéma et de données.

private void DemonstrateReadWriteXMLDocumentWithStreamReader()
{
    // Create a DataSet with one table and two columns.
    DataSet OriginalDataSet = new DataSet("dataSet");
    OriginalDataSet.Namespace= "NetFrameWork";
    DataTable table = new DataTable("table");
    DataColumn idColumn = new DataColumn("id",
        Type.GetType("System.Int32"));
    idColumn.AutoIncrement= true;

    DataColumn itemColumn = new DataColumn("item");
    table.Columns.Add(idColumn);
    table.Columns.Add(itemColumn);
    OriginalDataSet.Tables.Add(table);

    // Add ten rows.
    DataRow newRow;
    for(int i = 0; i < 10; i++)
    {
        newRow = table.NewRow();
        newRow["item"]= "item " + i;
        table.Rows.Add(newRow);
    }
    OriginalDataSet.AcceptChanges();

    // Print out values of each table in the DataSet
    // using the function defined below.
    PrintValues(OriginalDataSet, "Original DataSet");

    // Write the schema and data to an XML file.
    string xmlFilename = "XmlDocument.xml";

    // Use WriteXml to write the document.
    OriginalDataSet.WriteXml(xmlFilename);

    // Dispose of the original DataSet.
    OriginalDataSet.Dispose();

    // Create a new DataSet.
    DataSet newDataSet = new DataSet("New DataSet");

    // Read the XML document into the DataSet.
    newDataSet.ReadXml(xmlFilename);

    // Print out values of each table in the DataSet
    // using the function defined below.
    PrintValues(newDataSet,"New DataSet");
}

private void PrintValues(DataSet dataSet, string label)
{
    Console.WriteLine("\n" + label);
    foreach(DataTable table in dataSet.Tables)
    {
        Console.WriteLine("TableName: " + table.TableName);
        foreach(DataRow row in table.Rows)
        {
            foreach(DataColumn column in table.Columns)
            {
                Console.Write("\table " + row[column] );
            }
            Console.WriteLine();
        }
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithStreamReader()
    ' Create a DataSet with one table and two columns.
    Dim OriginalDataSet As New DataSet("dataSet")
    OriginalDataSet.Namespace = "NetFrameWork"
    Dim table As New DataTable("table")
    Dim idColumn As New DataColumn("id", _
        Type.GetType("System.Int32"))
    idColumn.AutoIncrement = True

    Dim itemColumn As New DataColumn("item")
    table.Columns.Add(idColumn)
    table.Columns.Add(itemColumn)
    OriginalDataSet.Tables.Add(table)

    ' Add ten rows.
    Dim newRow As DataRow
    Dim i As Integer
    For i = 0 To 9
        newRow = table.NewRow()
        newRow("item") = "item " & i.ToString()
        table.Rows.Add(newRow)
    Next i
    OriginalDataSet.AcceptChanges()

    ' Print out values of each table in the DataSet 
    ' using the function defined below.
    PrintValues(OriginalDataSet, "Original DataSet")

    ' Write the schema and data to an XML file.
    Dim xmlFilename As String = "XmlDocument.xml"

    ' Use WriteXml to write the document.
    OriginalDataSet.WriteXml(xmlFilename)

    ' Dispose of the original DataSet.
    OriginalDataSet.Dispose()

    ' Create a new DataSet.
    Dim newDataSet As New DataSet("New DataSet")

    ' Read the XML document into the DataSet.
    newDataSet.ReadXml(xmlFilename)

    ' Print out values of each table in the DataSet 
    ' using the function defined below.
    PrintValues(newDataSet, "New DataSet")
End Sub
    
Private Sub PrintValues(dataSet As DataSet, label As String)
    Console.WriteLine(ControlChars.Cr & label)
    Dim table As DataTable
    For Each table In  dataSet.Tables
        Console.WriteLine("TableName: " & table.TableName)
        Dim row As DataRow
        For Each row In  table.Rows
            Dim column As DataColumn
            For Each column In  table.Columns
                Console.Write(ControlChars.Tab & " " & _
                    row(column).ToString())
            Next column
            Console.WriteLine()
        Next row
    Next table
End Sub

Remarques

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataSet document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire à la fois les données et le schéma, utilisez l’une ReadXML des surcharges qui inclut le mode paramètre et définissez sa valeur sur ReadSchema.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataSetutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Si le schéma XML d’un DataSet inclut un targetNamespace, les données peuvent ne pas être lues et vous pouvez rencontrer des exceptions lors de l’appel ReadXml pour charger le avec xml DataSet qui contient des éléments sans espace de noms éligible. Pour lire des éléments non qualifiés, définissez la valeur elementFormDefault « qualifié » dans votre schéma XML, comme le montre l’exemple suivant.

<xsd:schema id="MyDataSet"
   elementFormDefault="qualified"
   targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
   xmlns="http://www.tempuri.org/MyDataSet.xsd"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>

Notes

Si le schéma de votre DataSet contient des éléments du même nom, mais de type différent, dans le même espace de noms, une exception est levée lorsque vous tentez de lire le schéma dans le DataSet avec ReadXml en spécifiant XmlReadMode.ReadSchema. Cette exception ne se produit pas si vous utilisez .NET Framework version 1.0.

Voir aussi

S’applique à

ReadXml(TextReader)

Source:
DataSet.cs
Source:
DataSet.cs
Source:
DataSet.cs

Lit le schéma et les données XML dans le DataSet à l'aide du TextReader spécifié.

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

Paramètres

reader
TextReader

TextReader à partir duquel lire le schéma et les données.

Retours

XmlReadMode utilisé pour lire les données.

Exemples

L’exemple suivant crée d’abord un simple DataSet avec une DataTable, deux colonnes et dix lignes. Le DataSet schéma et les données sont écrits sur le disque en appelant la WriteXml méthode . Un second DataSet est créé et la ReadXml méthode est utilisée pour le remplir de schéma et de données.

private void DemonstrateReadWriteXMLDocumentWithFileStream()
{
    // Create a DataSet with one table and two columns.
    DataSet originalDataSet = new DataSet("dataSet");
    DataTable table = new DataTable("table");
    DataColumn idColumn = new DataColumn("id",
        Type.GetType("System.Int32"));
    idColumn.AutoIncrement= true;

    DataColumn itemColumn = new DataColumn("item");
    table.Columns.Add(idColumn);
    table.Columns.Add(itemColumn);
    originalDataSet.Tables.Add(table);
    // Add ten rows.

    DataRow newRow;
    for(int i = 0; i < 10; i++)
    {
        newRow = table.NewRow();
        newRow["item"]= "item " + i;
        table.Rows.Add(newRow);
    }
    originalDataSet.AcceptChanges();

    // Print out values of each table in the DataSet
    // using the function defined below.
    PrintValues(originalDataSet, "Original DataSet");

    // Write the schema and data to XML file with FileStream.
    string xmlFilename = "XmlDocument.xml";
    System.IO.FileStream streamWrite = new System.IO.FileStream
        (xmlFilename, System.IO.FileMode.Create);

    // Use WriteXml to write the XML document.
    originalDataSet.WriteXml(streamWrite);

    // Close the FileStream.
    streamWrite.Close();

    // Dispose of the original DataSet.
    originalDataSet.Dispose();
    // Create a new DataSet.
    DataSet newDataSet = new DataSet("New DataSet");

    // Read the XML document back in.
    // Create new FileStream to read schema with.
    System.IO.FileStream streamRead = new System.IO.FileStream
        (xmlFilename,System.IO.FileMode.Open);
    newDataSet.ReadXml(streamRead);

    // Print out values of each table in the DataSet
    // using the function defined below.
    PrintValues(newDataSet,"New DataSet");
}

private void PrintValues(DataSet dataSet, string label)
{
    Console.WriteLine("\n" + label);
    foreach(DataTable table in dataSet.Tables)
    {
        Console.WriteLine("TableName: " + table.TableName);
        foreach(DataRow row in table.Rows)
        {
            foreach(DataColumn column in table.Columns)
            {
                Console.Write("\table " + row[column] );
            }
            Console.WriteLine();
        }
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithFileStream()
    ' Create a DataSet with one table and two columns.
    Dim originalDataSet As New DataSet("dataSet")
    Dim table As New DataTable("table")
    Dim idColumn As New DataColumn("id", _
       Type.GetType("System.Int32"))
    idColumn.AutoIncrement = True

    Dim itemColumn As New DataColumn("item")
    table.Columns.Add(idColumn)
    table.Columns.Add(itemColumn)
    originalDataSet.Tables.Add(table)

    ' Add ten rows.
    Dim newRow As DataRow
    Dim i As Integer
    For i = 0 To 9
        newRow = table.NewRow()
        newRow("item") = "item " & i.ToString()
        table.Rows.Add(newRow)
    Next i
    originalDataSet.AcceptChanges()

    ' Print out values of each table in the DataSet 
    ' using the function defined below.
    PrintValues(originalDataSet, "Original DataSet")

    ' Write the schema and data to XML file with FileStream.
    Dim xmlFilename As String = "XmlDocument.xml"
    Dim streamWrite As New System.IO.FileStream _
       (xmlFilename, System.IO.FileMode.Create)

    ' Use WriteXml to write the XML document.
    originalDataSet.WriteXml(streamWrite)

    ' Close the FileStream.
    streamWrite.Close()
     
    ' Dispose of the original DataSet.
    originalDataSet.Dispose()
    ' Create a new DataSet.
    Dim newDataSet As New DataSet("New DataSet")
       
    ' Read the XML document back in. 
    ' Create new FileStream to read schema with.
    Dim streamRead As New System.IO.FileStream _
       (xmlFilename, System.IO.FileMode.Open)
     
    newDataSet.ReadXml(streamRead)
    ' Print out values of each table in the DataSet  
    ' using the function defined below.
    PrintValues(newDataSet, "New DataSet")
End Sub
   
Private Sub PrintValues(dataSet As DataSet, label As String)
    Console.WriteLine(ControlChars.Cr & label)
    Dim table As DataTable
    Dim row As DataRow
    Dim column As DataColumn
    For Each table In  dataSet.Tables
        Console.WriteLine("TableName: " & table.TableName)         
        For Each row In  table.Rows             
            For Each column In  table.Columns
                Console.Write(ControlChars.Tab & " " & _
                   row(column).ToString())
            Next column
            Console.WriteLine()
        Next row
    Next table
End Sub

Remarques

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataSet document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire à la fois les données et le schéma, utilisez l’une ReadXML des surcharges qui inclut le mode paramètre et définissez sa valeur sur ReadSchema.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataSetutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Si le schéma XML d’un DataSet inclut targetNamespace, les données peuvent ne pas être lues et vous pouvez rencontrer des exceptions lors de l’appel ReadXml pour charger le avec xml DataSet qui contient des éléments sans espace de noms éligible. Pour lire des éléments non qualifiés, définissez la valeur elementFormDefault « qualifié » dans votre schéma XML, comme le montre l’exemple suivant.

<xsd:schema id="MyDataSet"
   elementFormDefault="qualified"
   targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
   xmlns="http://www.tempuri.org/MyDataSet.xsd"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>

Les classes qui héritent de la TextReader classe incluent les StreamReader classes et StringReader .

Notes

Si le schéma de votre DataSet contient des éléments du même nom, mais de type différent, dans le même espace de noms, une exception est levée lorsque vous tentez de lire le schéma dans le DataSet avec ReadXml en spécifiant XmlReadMode.ReadSchema. Cette exception ne se produit pas si vous utilisez .NET Framework version 1.0.

Voir aussi

S’applique à

ReadXml(Stream)

Source:
DataSet.cs
Source:
DataSet.cs
Source:
DataSet.cs

Lit le schéma et les données XML dans le DataSet à l'aide du Stream spécifié.

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

Paramètres

stream
Stream

Objet qui dérive de Stream.

Retours

XmlReadMode utilisé pour lire les données.

Exemples

L’exemple suivant crée d’abord un simple DataSet avec une DataTable, deux colonnes et dix lignes. Le DataSet schéma et les données sont écrits sur le disque en appelant la WriteXml méthode . Un second DataSet est créé et la ReadXml méthode est utilisée pour le remplir de schéma et de données.

private void DemonstrateReadWriteXMLDocumentWithFileStream()
{
    // Create a DataSet with one table and two columns.
    DataSet originalDataSet = new DataSet("dataSet");
    DataTable table = new DataTable("table");
    DataColumn idColumn = new DataColumn("id",
        Type.GetType("System.Int32"));
    idColumn.AutoIncrement= true;

    DataColumn itemColumn = new DataColumn("item");
    table.Columns.Add(idColumn);
    table.Columns.Add(itemColumn);
    originalDataSet.Tables.Add(table);
    // Add ten rows.

    DataRow newRow;
    for(int i = 0; i < 10; i++)
    {
        newRow = table.NewRow();
        newRow["item"]= "item " + i;
        table.Rows.Add(newRow);
    }
    originalDataSet.AcceptChanges();

    // Print out values of each table in the DataSet
    // using the function defined below.
    PrintValues(originalDataSet, "Original DataSet");

    // Write the schema and data to XML file with FileStream.
    string xmlFilename = "XmlDocument.xml";
    System.IO.FileStream streamWrite = new System.IO.FileStream
        (xmlFilename, System.IO.FileMode.Create);

    // Use WriteXml to write the XML document.
    originalDataSet.WriteXml(streamWrite);

    // Close the FileStream.
    streamWrite.Close();

    // Dispose of the original DataSet.
    originalDataSet.Dispose();
    // Create a new DataSet.
    DataSet newDataSet = new DataSet("New DataSet");

    // Read the XML document back in.
    // Create new FileStream to read schema with.
    System.IO.FileStream streamRead = new System.IO.FileStream
        (xmlFilename,System.IO.FileMode.Open);
    newDataSet.ReadXml(streamRead);

    // Print out values of each table in the DataSet
    // using the function defined below.
    PrintValues(newDataSet,"New DataSet");
}

private void PrintValues(DataSet dataSet, string label)
{
    Console.WriteLine("\n" + label);
    foreach(DataTable table in dataSet.Tables)
    {
        Console.WriteLine("TableName: " + table.TableName);
        foreach(DataRow row in table.Rows)
        {
            foreach(DataColumn column in table.Columns)
            {
                Console.Write("\table " + row[column] );
            }
            Console.WriteLine();
        }
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithFileStream()
    ' Create a DataSet with one table and two columns.
    Dim originalDataSet As New DataSet("dataSet")
    Dim table As New DataTable("table")
    Dim idColumn As New DataColumn("id", _
       Type.GetType("System.Int32"))
    idColumn.AutoIncrement = True

    Dim itemColumn As New DataColumn("item")
    table.Columns.Add(idColumn)
    table.Columns.Add(itemColumn)
    originalDataSet.Tables.Add(table)

    ' Add ten rows.
    Dim newRow As DataRow
    Dim i As Integer
    For i = 0 To 9
        newRow = table.NewRow()
        newRow("item") = "item " & i.ToString()
        table.Rows.Add(newRow)
    Next i
    originalDataSet.AcceptChanges()

    ' Print out values of each table in the DataSet 
    ' using the function defined below.
    PrintValues(originalDataSet, "Original DataSet")

    ' Write the schema and data to XML file with FileStream.
    Dim xmlFilename As String = "XmlDocument.xml"
    Dim streamWrite As New System.IO.FileStream _
       (xmlFilename, System.IO.FileMode.Create)

    ' Use WriteXml to write the XML document.
    originalDataSet.WriteXml(streamWrite)

    ' Close the FileStream.
    streamWrite.Close()
     
    ' Dispose of the original DataSet.
    originalDataSet.Dispose()
    ' Create a new DataSet.
    Dim newDataSet As New DataSet("New DataSet")
       
    ' Read the XML document back in. 
    ' Create new FileStream to read schema with.
    Dim streamRead As New System.IO.FileStream _
       (xmlFilename, System.IO.FileMode.Open)
     
    newDataSet.ReadXml(streamRead)
    ' Print out values of each table in the DataSet  
    ' using the function defined below.
    PrintValues(newDataSet, "New DataSet")
End Sub
   
Private Sub PrintValues(dataSet As DataSet, label As String)
    Console.WriteLine(ControlChars.Cr & label)
    Dim table As DataTable
    Dim row As DataRow
    Dim column As DataColumn
    For Each table In  dataSet.Tables
        Console.WriteLine("TableName: " & table.TableName)         
        For Each row In  table.Rows             
            For Each column In  table.Columns
                Console.Write(ControlChars.Tab & " " & _
                   row(column).ToString())
            Next column
            Console.WriteLine()
        Next row
    Next table
End Sub

Remarques

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataSet document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire à la fois les données et le schéma, utilisez l’une ReadXML des surcharges qui inclut le mode paramètre et définissez sa valeur sur ReadSchema.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataSetutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Si le schéma XML d’un DataSet inclut targetNamespace, les données peuvent ne pas être lues et vous pouvez rencontrer des exceptions lors de l’appel ReadXml pour charger le avec xml DataSet qui contient des éléments sans espace de noms éligible. Pour lire des éléments non qualifiés, définissez elementFormDefault égal à « qualified » dans votre schéma XML, comme le montre l’exemple suivant.

<xsd:schema id="MyDataSet"
   elementFormDefault="qualified"
   targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
   xmlns="http://www.tempuri.org/MyDataSet.xsd"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>

Notes

Si le schéma de votre DataSet contient des éléments du même nom, mais de type différent, dans le même espace de noms, une exception est levée lorsque vous tentez de lire le schéma dans le DataSet avec ReadXml en spécifiant XmlReadMode.ReadSchema. Cette exception ne se produit pas si vous utilisez .NET Framework version 1.0.

Voir aussi

S’applique à

ReadXml(XmlReader)

Source:
DataSet.cs
Source:
DataSet.cs
Source:
DataSet.cs

Lit le schéma et les données XML dans le DataSet à l'aide du XmlReader spécifié.

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

Paramètres

reader
XmlReader

XmlReader dans lequel effectuer la lecture.

Retours

XmlReadMode utilisé pour lire les données.

Exemples

L’exemple suivant crée d’abord un simple DataSet avec une DataTable, deux colonnes et dix lignes. Le DataSet schéma et les données sont écrits sur le disque en appelant la WriteXml méthode . Une seconde DataSet est créée et la ReadXml méthode est utilisée pour la remplir avec le schéma et les données.

private void DemonstrateReadWriteXMLDocumentWithXMLReader()
{
    // Create a DataSet with one table and two columns.
    DataSet OriginalDataSet = new DataSet("dataSet");
    OriginalDataSet.Namespace= "NetFrameWork";
    DataTable table = new DataTable("table");
    DataColumn idColumn = new DataColumn("id",
        Type.GetType("System.Int32"));
    idColumn.AutoIncrement= true;

    DataColumn itemColumn = new DataColumn("item");
    table.Columns.Add(idColumn);
    table.Columns.Add(itemColumn);
    OriginalDataSet.Tables.Add(table);

    // Add ten rows.
    DataRow newRow;
    for(int i = 0; i < 10; i++)
    {
        newRow = table.NewRow();
        newRow["item"]= "item " + i;
        table.Rows.Add(newRow);
    }
    OriginalDataSet.AcceptChanges();

    // Print out values of each table in the DataSet
    // using the function defined below.
    PrintValues(OriginalDataSet, "Original DataSet");

    // Write the XML schema and data to file with FileStream.
    string xmlFilename = "XmlDocument.xml";

    // Create FileStream
    System.IO.FileStream fsWriteXml =
        new System.IO.FileStream
        (xmlFilename, System.IO.FileMode.Create);

    // Create an XmlTextWriter to write the file.
    System.Xml.XmlTextWriter xmlWriter =
        new System.Xml.XmlTextWriter
        (fsWriteXml, System.Text.Encoding.Unicode);

    // Use WriteXml to write the document.
    OriginalDataSet.WriteXml(xmlWriter, XmlWriteMode.WriteSchema);

    // Close the FileStream.
    fsWriteXml.Close();

    // Dispose of the original DataSet.
    OriginalDataSet.Dispose();

    // Create a new DataSet.
    DataSet newDataSet = new DataSet("New DataSet");

    // Read the XML document back in.
    // Create new FileStream to read schema with.
    System.IO.FileStream fsReadXml =
        new System.IO.FileStream
        (xmlFilename, System.IO.FileMode.Open);

    // Create an XmlTextReader to read the file.
    System.Xml.XmlTextReader xmlReader =
        new System.Xml.XmlTextReader(fsReadXml);

    // Read the XML document into the DataSet.
    newDataSet.ReadXml(xmlReader, XmlReadMode.ReadSchema);

    // Close the XmlTextReader
    xmlReader.Close();

    // Print out values of each table in the DataSet
    // fusing the unction defined below.
    PrintValues(newDataSet,"New DataSet");
}

private void PrintValues(DataSet dataSet, string label)
{
    Console.WriteLine("\n" + label);
    foreach(DataTable table in dataSet.Tables)
    {
        Console.WriteLine("TableName: " + table.TableName);
        foreach(DataRow row in table.Rows)
        {
            foreach(DataColumn column in table.Columns)
            {
                Console.Write("\t{0}({1})='{2}'", column.ColumnName, column.DataType.Name, row[column]);
            }
            Console.WriteLine();
        }
    }
}
Private Sub DemonstrateReadWriteXMLDocumentWithXMLReader()
    ' Create a DataSet with one table and two columns.
    Dim OriginalDataSet As New DataSet("dataSet")
    OriginalDataSet.Namespace = "NetFrameWork"
    Dim table As New DataTable("table")
    Dim idColumn As New DataColumn("id", _
        Type.GetType("System.Int32"))
    idColumn.AutoIncrement = True

    Dim itemColumn As New DataColumn("item")
    table.Columns.Add(idColumn)
    table.Columns.Add(itemColumn)
    OriginalDataSet.Tables.Add(table)

    ' Add ten rows.
    Dim newRow As DataRow
    Dim i As Integer
    For i = 0 To 9
        newRow = table.NewRow()
        newRow("item") = "item " & i.ToString()
        table.Rows.Add(newRow)
    Next i
    OriginalDataSet.AcceptChanges()

    ' Print out values of each table in the DataSet 
    ' using the function defined below.
    PrintValues(OriginalDataSet, "Original DataSet")

    ' Write the XML schema and data to file with FileStream.
    Dim xmlFilename As String = "XmlDocument.xml"

    ' Create FileStream    
    Dim fsWriteXml As New System.IO.FileStream _
        (xmlFilename, System.IO.FileMode.Create)

    ' Create an XmlTextWriter to write the file.
    Dim xmlWriter As New System.Xml.XmlTextWriter _
        (fsWriteXml, System.Text.Encoding.Unicode)

    ' Use WriteXml to write the document.
    OriginalDataSet.WriteXml(xmlWriter, XmlWriteMode.WriteSchema)

    ' Close the FileStream.
    fsWriteXml.Close()
        
    ' Dispose of the original DataSet.
    OriginalDataSet.Dispose()

    ' Create a new DataSet.
    Dim newDataSet As New DataSet("New DataSet")
        
    ' Read the XML document back in. 
    ' Create new FileStream to read schema with.
    Dim fsReadXml As New System.IO.FileStream _
        (xmlFilename, System.IO.FileMode.Open)

    ' Create an XmlTextReader to read the file.
    Dim xmlReader As New System.Xml.XmlTextReader(fsReadXml)

    ' Read the XML document into the DataSet.
    newDataSet.ReadXml(xmlReader, XmlReadMode.ReadSchema)

    ' Close the XmlTextReader
    xmlReader.Close()
        
    ' Print out values of each table in the DataSet using the 
    ' function defined below.
    PrintValues(newDataSet, "New DataSet")
End Sub
    
    
 Private Sub PrintValues(dataSet As DataSet, label As String)
     Console.WriteLine(ControlChars.Cr & label)
     Dim table As DataTable
     Dim row As DataRow
     Dim column As DataColumn
     For Each table In  dataSet.Tables
         Console.WriteLine("TableName: " & table.TableName)
         For Each row In  table.Rows
             For Each column In  table.Columns
                 Console.Write(ControlChars.Tab & "{0}({1})='{2}'", column.ColumnName, column.DataType.Name, row(column).ToString())

             Next column
             Console.WriteLine()
         Next row
     Next table
  End Sub

Remarques

La ReadXml méthode permet de lire uniquement les données, ou à la fois les données et le schéma dans un DataSet document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire à la fois les données et le schéma, utilisez l’une ReadXML des surcharges qui incluent le mode paramètre et définissez sa valeur sur ReadSchema.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou un schéma et des données à partir du DataSet, utilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException est levée si un type de colonne dans le DataRow en cours de lecture ou d’écriture dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

Le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ « ) sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML illégaux dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque les caractères juridiques dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Si le schéma XML d’un DataSet inclut un targetNamespace, les données peuvent ne pas être lues, et vous pouvez rencontrer des exceptions lors de l’appel ReadXml de pour charger avec xml DataSet qui contient des éléments sans espace de noms éligible. Pour lire les éléments non qualifiés, définissez elementFormDefault égal à « qualified » dans votre schéma XML, comme le montre l’exemple suivant.

<xsd:schema id="MyDataSet"
   elementFormDefault="qualified"
   targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
   xmlns="http://www.tempuri.org/MyDataSet.xsd"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>

System.Xml.XmlTextReader hérite de XmlReader.

Notes

Si le schéma de votre DataSet contient des éléments du même nom, mais de type différent, dans le même espace de noms, une exception est levée lorsque vous tentez de lire le schéma dans le DataSet avec ReadXml en spécifiant XmlReadMode.ReadSchema. Cette exception ne se produit pas si vous utilisez .NET Framework version 1.0.

Voir aussi

S’applique à