Lecture de données XML avec XmlTextReader
La classe XmlTextReader est une implémentation de XmlReader qui fournit un analyseur rapide et performant. Elle applique les règles selon lesquelles le code XML doit être correctement construit. Cet analyseur n'est ni validant ni non validant puisqu'il ne possède pas d'informations DTD ou de schéma. Il peut lire du texte dans des blocs ou des caractères à partir d'un flux.
XmlTextReader fournit les fonctionnalités suivantes :
- 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, l'expansion des références d'entité ou l'ajout d'attributs par défaut.
- La validation n'est pas effectuée par rapport à des DTD ou des schémas.
- Vérifie que les nœuds DOCTYPE sont corrects.
- Vérifie que les entités sont correctes. Pour les types de nœud EntityReference, un nœud EntityReference unique et vide est retourné. Un nœud EntityReference vide correspond à un nœud dont la propriété Value est string.Empty. Ceci provient du fait que vous n'avez pas de DTD ni de schéma avec lequel étendre la référence d'entité. XmlTextReader vérifie que la DTD entière est correctement construite, y compris les nœuds EntityReference.
- Fournit un analyseur XML performant, car XmlTextReader n'a pas la charge du contrôle de validation.
XmlTextReader peut lire des données à partir de différentes entrées, comme un objet de flux de données, un objet TextReader et une URL identifiant l'emplacement d'un fichier local ou un site Web.
XmlTextReader utilise un 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 XmlResolver, consultez Résolution de ressources à l'aide de XmlResolver.
La déclaration de codage <?xml version="1.0" encoding="ISO-8859-5"?>
contient un attribut de codage qui définit le codage de votre document. XmlTextReader a une propriété Encoding qui retourne le codage de caractères trouvé dans l'attribut de codage de la déclaration XML. Si aucun attribut de codage n'est trouvé, la valeur par défaut affectée au document est UTF-8.
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, la valeur définie pour le codage est la valeur de codage trouvée dans la référence externe. Si aucun codage n'est trouvé dans la référence externe, la valeur par défaut affectée est UTF-8. XmlTextReader prend en charge de nombreux codages puisqu'il utilise la classe System.Text.Encoding. Tous les codages pris en charge par cette classe sont donc également pris en charge par XmlTextReader. Les seuls codages qui ne sont pas pris en charge sont ceux qui mappent la séquence <?xml
vers des valeurs d'octets différentes de UTF-8, telles que UTF-7 et EBCDIC.
Voir aussi
Lecture du contenu complet à l'aide des flux de caractères | Informations sur la déclaration du type de document | Gestion des espaces blancs avec XmlTextReader | Normalisation de la valeur d'attribut | Gestion des exceptions à l'aide de XmlException dans XmlTextReader | XmlReader, classe | XmlReader, membres | XmlNodeReader, classe | XmlNodeReader, membres | XmlTextReader, classe | XmlTextReader, membres | XmlValidatingReader, classe | XmlValidatingReader