Qu'est-il arrivé à XmlTextReader en .Net 2.0 ? [Résolu]

Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
- - Dernière réponse : cs_badrbadr
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
- 21 déc. 2006 à 19:53
Bonjour;
Dans la documentation de .Net, il est écrit qu'il est conseillé de créer des XmlReader avec la méthode statique Create au lieu d'utiliser un XmlTextReader :Although the Microsoft .NET Framework includes concrete implementations of the XmlReader class, such as the <?XML:NAMESPACE PREFIX MSHelp NS "http://msdn.microsoft.com/mshelp" /??><mshelp:link tabindex="0" keywords="T:System.Xml.XmlTextReader">XmlTextReader</mshelp:link>, <mshelp:link tabindex="0" keywords="T:System.Xml.XmlNodeReader">XmlNodeReader</mshelp:link>, and the <mshelp:link tabindex="0" keywords="T:System.Xml.XmlValidatingReader">XmlValidatingReader</mshelp:link> classes, in the .NET Framework version 2.0, we recommend that you create XmlReader instances using the Create method.

Et dans une autre page :
In the Microsoft .NET Framework version 2.0 release, the recommended practice is to create [ms-help://MS.NETFramework.v20.en/cpref19/html/T_System_Xml_XmlReader.htm XmlReader] instances using the [ms-help://MS.NETFramework.v20.en/cpref19/html/O_T_System_Xml_XmlReader_Create.htm System.Xml.XmlReader.Create] method. This allows you to take full advantage of the new features introduced in this releaseCreating XML Readers</mshelp:link>.

De quels nouveaux "features" ils parlent. Il me semble que le XmlTextReader simplifie davantage la lecture des fichiers xml.
Je ne comprends pas pkoi utiliser un XmlReader au lieu d'un XmlTextReader quand on travaille sur des fichiers textes?
Je débute un programme et j'attend votre avis pour décider le quel choisir, XmlReader ou XmlTextReader parce que la documentation n'est pas trop claire la-dessus.

Merci d'avance
[:D] @++
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
3
3
Merci
Salut,

La méthode XmlParser.Create ressemble à un design pattern de type Factory. En gros, au lieu de laisser le développeur instancier lui-même la classe dérivée (XmlTextReader, XmlValidatingReader, ...), cette méthode choisit la classe dérivée la plus appropriée en fonction des paramètres passés,  crée une instance et la retourne.

L'idée à la base est donc de simplifier les choix du programmeur, et d'encourager l'abstraction autour des différents types de parsers XML (on ne manipule que des XmlReader).

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dgouttegattat
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
42
3
Merci
Badr> En fait tu peux donner un coup de Reflector sur XmlReader.Create pour voir ce qu'elle fait, tu verras, le code n'est pas trop compliqué...

<hr size="2" />-Blog-

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
42
0
Merci
Salut,
Après lecture de la doc je dois dire que je ne saurais pas répondre à ta question.
Le fait est que XmlReader est une class abstraite et que XmlTextReader dérive de cette classe, elle est donc logiquement "plus spécialisée".

Maintenant si la doc insiste sur le fait de se servir d'un XmlReader plutôt qu'un XmlTextReader c'est que y'a sûrement une raison (peut-être au niveau de la validation des schémas?) et je ne vois pas pourquoi tu ne le ferais pas

<hr size="2" />-Blog-
Commenter la réponse de cs_Bidou
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
0
Merci
Salut et merci pour vos réponses,
Après un coup de Reflector (j'ai pas le reflexe encore), j'ai pu confirmer les dires de dgouttegattat.
Il semble que XmlReader.Create selectionne la meilleure option en fonction du type de document Xml.
Pour le confirmer, j'ai essayer le code suivant :
XmlReader reader XmlReader.Create(path);<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" /??>

Console.WriteLine(reader.ToString());

Output : System.Xml.XmlTextReaderImpl

C'est domage par contre de voir que même dans la documentation, il donne des sources avec XmlTextReader. C'est mélangeant pour le lecteur.
Allez, je vais pouvoir commencer ce projet....avec un XmlReader :)
[:D] @++
Commenter la réponse de cs_badrbadr