Discussion:
ResetState()
(trop ancien pour répondre)
Hervé HERRY
2005-04-13 15:34:56 UTC
Permalink
Bonjour,

Avec un objet XmlTextReader en C#, lorsque j'utilise ResetState() pour
rescanner mon fichier XML depuis le début, il me génère une exception et je
n'arrive pas à savoir pourquoi ...

A l'aide !
Merci d'avance.
--
Hervé HERRY
Fabrice MALAINGRE
2005-04-13 15:57:17 UTC
Permalink
Bonjour Hervé,
Post by Hervé HERRY
Avec un objet XmlTextReader en C#,
lorsque j'utilise ResetState() pour rescanner
mon fichier XML depuis le début, il me génère
une exception et je n'arrive pas à savoir pourquoi ...
Quelle est la nature de l'exception en question ?
Cela permettra d'orienter les investigations...

Cordialement

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
Fabrice MALAINGRE
2005-04-14 10:18:40 UTC
Permalink
Bonjour Hervé,
D'abord, le contexte : il s'agit d'un programme
pour Pocket PC 2003 avec VS .NET 2003.
En fait, je viens de réaliser, mieux vaut tard que jamais,
que je vous ai déjà répondu sur le forum PocketPC :-)

A priori, votre fichier XML n'a rien d'anormal.
Le problème est donc dans votre code, ou dans
l'implémentation du Compact Framework
(ce ne serait pas la première fois !).

Sinon, comme je vous l'ai déjà signalé dans
un post précédent :
1) L'OpenNETCF dispose d'une classe "XPath".
Site de l'OpenNETCF : http://www.opennetcf.org/


2) Je ne connais pas le contexte de votre projet mais,
vu de très loin, l'utilisation des fichiers de ressources en XML
(qui ressemblent fort au vôtres d'ailleurs),
compilés sous la forme de "satellite assemblies",
pourrait répondre au problème posé.
Et pour l'avoir utilisé, cela fonctionne très bien avec le CF.


Cordialement

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
Hervé HERRY
2005-04-14 11:43:12 UTC
Permalink
Bonjour Fabrice,

Tout d'abord, merci de m'aider pour la deuxième fois. J'ai bien pris note de
l'existence de l'OpenNETCF qui est très intéressante. En réalité, je
travaille pour une multinationale qui diffusera le logiciel que je fais un
peu partout dans le monde. J'évite donc d'utiliser cette extension pour
simplifier au maximum le déploiement, mais je garde cette solution sous le
coude.
Par ailleurs, on m'a demandé de laisser à la charge des clients la
traduction des menus en s'appuyant sur la version anglo-saxonne. C'est la
raison pour laquelle je tiens absolument à laisser mes traductions dans un
.xml (ou un .ini ?). Je suis parti sur un xml car il me semble que c'est
"mieux" (données structurées, meilleure prise en charge de l'Unicode), mais,
ne trouvant aucun exemple du genre sur Internet, je commence à me demander
si je ne fais pas carrément fausse route...
J'ai temporairement résolu mon problème d'exception en fermant et rouvrant
le fichier xml à chaque fois que je veux le relire du début... ce n'est pas
très propre et j'espère trouver la raison quand-même. Il n'y a qu'une
différence dans les champs de mon objet XmlTextReader après avoir appelé
ResetState(), le booléen afterResetState est égal à "true" et le reste
définitivement. C'est peut-être à cause de ça que j'ai une exception...
Post by Fabrice MALAINGRE
Bonjour Hervé,
D'abord, le contexte : il s'agit d'un programme
pour Pocket PC 2003 avec VS .NET 2003.
En fait, je viens de réaliser, mieux vaut tard que jamais,
que je vous ai déjà répondu sur le forum PocketPC :-)
A priori, votre fichier XML n'a rien d'anormal.
Le problème est donc dans votre code, ou dans
l'implémentation du Compact Framework
(ce ne serait pas la première fois !).
Sinon, comme je vous l'ai déjà signalé dans
1) L'OpenNETCF dispose d'une classe "XPath".
Site de l'OpenNETCF : http://www.opennetcf.org/
2) Je ne connais pas le contexte de votre projet mais,
vu de très loin, l'utilisation des fichiers de ressources en XML
(qui ressemblent fort au vôtres d'ailleurs),
compilés sous la forme de "satellite assemblies",
pourrait répondre au problème posé.
Et pour l'avoir utilisé, cela fonctionne très bien avec le CF.
Cordialement
____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
Fabrice MALAINGRE
2005-04-14 20:27:21 UTC
Permalink
Bonsoir Hervé,
Post by Hervé HERRY
Par ailleurs, on m'a demandé de laisser à la charge
des clients la traduction des menus en s'appuyant sur
la version anglo-saxonne.
Tout dépend ce qu'implique "à la charge des clients" :

1) Ils ne disposent de l'environnement de développement,
et dans ce cas, il faut effectivement leurs laisser un point
d'entrée "en clair" ; votre fichier XML est une bonne solution...

2) Ils disposent de l'environnement de développement,
et dans ce cas, il leurs suffit juste de regénérer l'assembly
contenant les traductions, et non l'intégralité du projet ;
c'est la traduction de votre fichier XML en binaire.
La chose importante à retenir, c'est que les clients n'ont
pas besoin des sources du projet, mais juste du fichier XML
de traduction qu'ils devront "embarquer" dans une DLL.

Cordialement

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
Hervé HERRY
2005-04-15 07:09:15 UTC
Permalink
Bonjour Fabrice,
Post by Fabrice MALAINGRE
1) Ils ne disposent de l'environnement de développement,
et dans ce cas, il faut effectivement leurs laisser un point
d'entrée "en clair" ; votre fichier XML est une bonne solution...
Les clients en question ne seront pas des développeurs mais des
utilisateurs. J'ai même encore mieux qu'un fichier XML pour eux comme point
d'entrée : un autre département dans mon entreprise a déjà conçu un
utilitaire de traduction servant d'interface entre le fichier XML et le
client. Il apporte l'avantage notable de mettre en évidence les entrées
modifiées ou nouvelles depuis la dernière traduction. Je m'égare un peu car
il n'en demeure pas moins que je dois exploiter le fichier XML obtenu, donc
le lire et retrouver mes problèmes d'exception... Aujourd'hui, je vais voir
une personne qui a développé ce que je cherche en VB .NET pour PPC. En
théorie, il ne dispose pas plus de méthodes pour XML que moi en C# !

Je vous tiendrai informé si j'ai une solution.
Merci encore.
--
Hervé HERRY
Loading...