XmlTextReader, classe
Assembly : System.Xml (dans system.xml.dll)
Remarque |
|---|
| Dans la version Microsoft .NET Framework version 2.0, la méthode recommandée consiste à créer des instances XmlReader à l'aide de la méthode System.Xml.XmlReader.Create. Cela vous permet de tirer pleinement parti des nouvelles fonctionnalités présentées dans cette version. Pour plus d'informations, consultez Création de lecteurs XML. |
XmlTextReader fournit un accès en avant uniquement et en lecture seule à un flux de données XML. Le nœud actuel fait référence au nœud sur lequel le lecteur est placé. Le lecteur avance à l'aide des méthodes de lecture tandis que les propriétés reflètent la valeur du nœud actuel.
Cette classe implémente XmlReader et est conforme aux recommandations du W3C intitulées Extensible Markup Language (XML) 1.0 et Namespaces in XML. XmlTextReader fournit les fonctionnalités suivantes :
-
Applique les règles nécessaires à l'obtention d'un code XML correct.
-
XmlTextReader ne fournit pas de validation des données.
-
Vérifie que les nœuds DocumentType sont corrects. XmlTextReader vérifie la construction correcte du DTD, mais n'effectue pas de validation à l'aide du DTD.
-
Pour les nœuds dont NodeType est XmlNodeType.EntityReference, un seul nœud vide EntityReference est retourné (c'est-à-dire que la propriété Value est String.Empty).
Remarque |
|---|
| Les déclarations réelles des entités dans la DTD sont qualifiées de nœuds Entity. Lorsque vous faites référence à ces nœuds dans vos données, ils sont appelés nœuds EntityReference. |
-
Ne développe pas les attributs par défaut.
XmlTextReader n'effectue pas les vérifications supplémentaires requises pour la validation des données, par conséquent, il fournit un analyseur qui examine rapidement si un contenu est correct.
Pour effectuer une validation des données, utilisez un XmlReader de validation. Pour plus d'informations, consultez Validation de données XML avec XmlReader.
Pour lire des données XML à partir de XmlDocument, utilisez XmlNodeReader.
XmlTextReader lève XmlException sur les erreurs d'analyse XML. Lorsqu'une exception est levée, l'état du lecteur est imprévisible. Par exemple, le type de nœud rapporté peut différer du type réel du nœud actuel. Utilisez la propriété ReadState pour vérifier si l'état du lecteur est Erreur.
Pour obtenir des informations supplémentaires sur les classes XmlReader, consultez Lecture de XML avec XmlReader.
Considérations sur la sécurité
Les éléments suivants sont à prendre en compte lors de l'utilisation de la classe XmlTextReader.
-
Les exceptions levées par XmlTextReader peuvent divulguer des informations relatives au chemin d'accès dont vous ne souhaitez pas qu'elles soient propagées dans l'application. Vos applications doivent intercepter les exceptions et les traiter correctement.
-
Le traitement DTD est activé par défaut. Désactivez le traitement DTD si vous rencontrez des problèmes de déni de service ou si vous devez gérer des sources non fiables. Pour ce faire, affectez la valeur true à la propriété ProhibitDtd.
Si le traitement DTD est activé, vous pouvez utiliser XmlSecureResolver pour restreindre les ressources auxquelles XmlTextReader peut accéder. Vous pouvez également concevoir votre application afin que le traitement XML soit limité en termes de mémoire et de temps. Par exemple, configurez des limites de délai d'expiration dans votre application ASP.NET
-
Les données XML peuvent inclure des références à des ressources externes telles qu'un fichier DTD. Les ressources externes sont résolues par défaut en utilisant un objet XmlUrlResolver sans informations d'identification d'utilisateur. Vous pouvez renforcer la sécurité en procédant comme suit :
-
Limitez les ressources auxquelles XmlTextReader peut accéder en définissant la propriété XmlResolver sur un objet XmlSecureResolver.
-
N'autorisez pas XmlReader à ouvrir n'importe quelle ressource externe en définissant la propriété XmlResolver avec la valeur référence Null (Nothing en Visual Basic).
-
-
Les données XML peuvent contenir un grand nombre d'attributs, de déclarations d'espace de noms, d'éléments imbriqués et autres, qui requièrent une grande durée de traitement. Pour limiter la taille de l'entrée qui est envoyée au XmlTextReader, créez une implémentation IStream personnalisée et affectez-lui XmlTextReader.
-
La méthode ReadValueChunk peut être utilisée pour gérer de grands flux de données. Cette méthode lit un petit nombre de caractères à la fois au lieu d'allouer une chaîne unique pour la valeur entière.
-
Par défaut, les entités générales ne sont pas développées. Des entités générales sont développées lorsque vous appelez la méthode ResolveEntity.
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Référence
Membres XmlTextReaderSystem.Xml, espace de noms
Autres ressources
Documents et données XMLSécurité et applications system.xml
