Partager via


Lecture de données XML avec XmlTextReader

La classe XmlTextReader est une implémentation de l'objet XmlReader qui fournit un analyseur sur un texte XML. Elle applique les règles selon lesquelles le code XML doit être correctement construit. Il ne s'agit ni d'un analyseur de validation ni n'un analyseur non validant car il n'utilise pas d'informations de définition de type de document (DTD) ou de schéma. Il peut lire du texte dans des blocs ou des caractères à partir d'un flux.

RemarqueRemarque

Dans .NET Framework version 2.0, la pratique recommandée consiste à créer des instances de l'objet XmlReader à l'aide de la classe XmlReaderSettings et de la méthode Create.Cela vous permet de tirer pleinement parti de toutes les nouvelles fonctions introduites dans .NET Framework 2.0.Pour plus d'informations, voir Création de lecteurs XML.

Vue d'ensemble

L'objet XmlTextReader fournit la fonctionnalité suivante :

  • Applique les règles selon lesquelles le code XML doit être correctement construit.

  • Vérifie que la DTD est correctement construite. Cependant, la DTD n'est pas utilisée pour la validation ou l'ajout d'attributs par défaut. La DTD est utilisée pour l'extension d'identité si la propriété EntityHandling a la valeur ExpandEntities ou si la méthode ResolveEntity est appelée sur un nœud EntityReference.

  • Retourne des références d'entité non étendues comme des nœuds EntityReference quand la propriété EntityHandling a la valeur ExpandCharEntities (il s'agit du paramètre par défaut). Si la référence d'entité n'est pas définie dans une DTD, le lecteur ne génère pas d'erreur, à moins que la méthode ResolveEntity soit appelée sur le nœud.

  • Fournit une option pour désactiver la normalisation XML de nouvelles lignes et de valeurs d'attribut. La normalisation est désactivée par défaut.

  • La validation n'est pas effectuée par rapport à des DTD ou des schémas.

  • Fournit un analyseur XML rapide car l'objet XmlTextReader n'a pas la surcharge liée au contrôle de validation.

L'objet XmlTextReader peut lire des données à partir de différentes entrées, comme un objet de flux, un objet TextReader et une URL identifiant l'emplacement d'un fichier local ou un site Web.

L'objet XmlTextReader utilise un objet XmlResolver pour localiser des ressources externes telles que des DTD, afin de pouvoir vérifier si ces DTD sont bien construites. Pour plus d'informations sur l'objet XmlResolver, voir Résolution de ressources à l'aide de XmlResolver.

La déclaration d'encodage <?xml version="1.0" encoding="ISO-8859-5"?> contient un attribut d'encodage qui définit l'encodage de votre document. L'objet XmlTextReader a une propriété Encoding qui retourne l'encodage de caractères trouvé dans l'attribut d'encodage de la déclaration XML. Si aucun attribut d'encodage n'est trouvé, la valeur par défaut affectée au document est UTF-8 ou UTF-16, en fonction des deux premiers octets du flux.

Si une ressource externe est lue, telle qu'une DTD utilisée pour étendre une référence d'entité ou un fichier de schéma, l'encodage est la valeur d'encodage trouvée dans la référence externe. Si aucun encodage n'est trouvé dans la référence externe, la valeur par défaut affectée est UTF-8 ou UTF-16. L'objet XmlTextReader prend en charge de nombreux encodages puisqu'il utilise la classe Encoding. Tous les encodages pris en charge par cette classe sont donc également pris en charge par l'objet XmlTextReader. Les seuls encodages qui ne sont pas pris en charge sont ceux qui mappent la séquence <?xml à des valeurs d'octets différentes de UTF-8, telles que UTF-7 et EBCDIC.

Voir aussi

Concepts

Lecture de XML avec XmlReader

Autres ressources

Utilisation de la classe XmlReader