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

cs_badrbadr 475 Messages postés jeudi 19 juin 2003Date d'inscription 3 novembre 2008 Dernière intervention - 21 déc. 2006 à 00:06 - Dernière réponse : cs_badrbadr 475 Messages postés jeudi 19 juin 2003Date d'inscription 3 novembre 2008 Dernière intervention
- 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

Répondre au sujet
dgouttegattat 129 Messages postés mardi 22 novembre 2005Date d'inscription 30 décembre 2007 Dernière intervention - 21 déc. 2006 à 11:21
+3
Utile
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).
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de dgouttegattat
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 21 déc. 2006 à 11:53
+3
Utile
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-
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 21 déc. 2006 à 08:50
0
Utile
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
cs_badrbadr 475 Messages postés jeudi 19 juin 2003Date d'inscription 3 novembre 2008 Dernière intervention - 21 déc. 2006 à 19:53
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.