Partager via


Comparaison entre XmlReader et le lecteur SAX

Comme le lecteur SAX, XmlReader est un curseur avant uniquement en lecture seule. Il fournit un accès en flux rapide et non mis en cache à l'entrée. Il peut lire un flux ou un document. Il permet à l'utilisateur d'extraire des données et d'ignorer des enregistrements sans intérêt pour l'application. La grande différence réside dans le fait que le modèle SAX est un modèle « push » dans lequel l'analyseur exécute un push sur des événements vers l'application, en avertissant l'application chaque fois qu'un nouveau nœud a été lu, alors que les applications qui utilisent XmlReader peuvent extraire des nœuds du lecteur à volonté. Voici les domaines dans lesquels ce modèle d'extraction présente des avantages :

Avantage Description
Gestion d'état Le modèle push requiert les gestionnaires de contenu pour construire des machines ayant un état très complexe. Le client du modèle d'extraction simplifie la gestion d'état à l'aide d'une amélioration de procédure naturelle de haut en bas.
Flux d'entrée multiples Le modèle d'extraction permet au client de rassembler plusieurs flux d'entrée. Il est très difficile de le faire dans le modèle push.
Superposition Le modèle push peut être créé au-dessus du modèle d'extraction. L'inverse est impossible.
Capacité à éviter la copie de chaînes supplémentaire Normalement, les données sont lues de la mémoire tampon de l'analyseur dans l'objet chaîne qui fait ensuite l'objet d'un push vers la mémoire tampon du client. Le modèle d'extraction permet au client de donner à l'analyseur une mémoire tampon dans laquelle la chaîne est écrite directement.
Traitement sélectif Le modèle push avertit le client pour chaque élément, y compris pour les attributs, les instructions de traitement et les espaces blancs, alors que le client du modèle d'extraction peut ignorer des éléments et ne traiter que ceux qui présentent un intérêt pour l'application. Ceci permet d'obtenir des applications très efficaces. De plus, les propriétés qui affectent le mode de traitement du flux XML peuvent être définies à l'avance (par exemple Normalization). Pour plus d'informations sur le contenu ignoré, consultez Contenu ignoré avec XmlReader.

Voir aussi

Lecture de XML avec XmlReader | Position du nœud actuel dans XmlReader | Paramètres des propriétés sur XmlReader | Comparaison d'objets à l'aide de XmlNameTable avec XmlReader | Lecture d'attributs avec XmlReader | Lecture du contenu d'éléments et d'attributs | Contenu ignoré avec XmlReader | Lecture et expansion de références d'entité | Lecture de données XML avec XmlTextReader | Lecture d'arborescences de nœuds avec XmlNodeReader | Validation de code XML avec XmlValidatingReader | Création de lecteur XML personnalisé | XmlReader, classe | XmlReader, membres | XmlNodeReader, classe | XmlNodeReader, membres | XmlTextReader, classe | XmlTextReader, membres | XmlValidatingReader, classe | XmlValidatingReader, membres