Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[C# .NET ]serialisation de XML

2 réponses
Avatar
David Alloza
Bonjour,
Voila mon problème.
Nous ( la société pour laquelle je travaille ) avons developpé un système
d'export automatisé à base de reflexion en C#.
En gros, l'API prend en entrée un object .NET, parses ses membres à l'aide
de la reflexion, et construit une sorte de XML binaire très compact (
catalogue de tag, DTD binaire), et très rapide à parser dans nos
applications C++.
Quand on part d'un object .NET, aucun problème, on a le typage des membres,
les classes encapsulées, les valeurs..

Nous devons maintenant partir d'un XML texte, généré par des outils
externes.
Si nous connaissons la structure de ce XML, pas de pb, nous pouvons le
désérialiser tout seul dans un object C# d'une classe connue, tous les types
seront correct.

Dans le cas ou nous ne connaissons pas du tout la structure du XML, nous
n'avons pas de solutions simples. Nous devons nous même lire membres par
membres et chercher le type d'object qui encapsule le mieux chaque données
stockées ( string, float, int, char...).

Nous serions très aidés par une solution existante et automatisée sur ce
point précis. Quelquechose qui serait capable de nous générer
automatiquement , via reflexion, un object correspondant à une
représentation optimisée des champs et types stockés dans le XML texte.

Peut etre que nous sommes passés à coté d'une solution disponible dans le
framework ( nous sommes en .NET 2003 ). Peut etre existe t'il une solution
libre ou payante correspondant à ces besoins ?.
Si quelqu'un à une proposition qui pourrait nous faire avancer..

Cordialement,
David Alloza.

2 réponses

Avatar
Remi Thomas - MVP
"David Alloza" écrivit
Bonjour,
Voila mon problème.
Nous ( la société pour laquelle je travaille ) avons developpé un système
d'export automatisé à base de reflexion en C#.
En gros, l'API prend en entrée un object .NET, parses ses membres à l'aide
de la reflexion, et construit une sorte de XML binaire très compact (
catalogue de tag, DTD binaire), et très rapide à parser dans nos
applications C++.
Quand on part d'un object .NET, aucun problème, on a le typage des
membres, les classes encapsulées, les valeurs..

Nous devons maintenant partir d'un XML texte, généré par des outils
externes.
Si nous connaissons la structure de ce XML, pas de pb, nous pouvons le
désérialiser tout seul dans un object C# d'une classe connue, tous les
types seront correct.

Dans le cas ou nous ne connaissons pas du tout la structure du XML, nous
n'avons pas de solutions simples. Nous devons nous même lire membres par
membres et chercher le type d'object qui encapsule le mieux chaque données
stockées ( string, float, int, char...).

Nous serions très aidés par une solution existante et automatisée sur ce
point précis. Quelquechose qui serait capable de nous générer
automatiquement , via reflexion, un object correspondant à une
représentation optimisée des champs et types stockés dans le XML texte.

Peut etre que nous sommes passés à coté d'une solution disponible dans le
framework ( nous sommes en .NET 2003 ). Peut etre existe t'il une solution
libre ou payante correspondant à ces besoins ?.
Si quelqu'un à une proposition qui pourrait nous faire avancer..

Cordialement,
David Alloza.






Salut David,

Je ne pense pas que cela soit possible et donc qu'un outil de ce style
existe.
Pas contre tu peux t'en sortir avec une XSLT, transformation XML qui te
permet de transformer la sérialisation XLM d'un format inconnu vers ton
format XML que tu sais exploiter. Bien entendu il faut que quelqu'un écrive
cette XSLT, mais cela devient un paramètre de ton programme, pas besoin de
regénérer un nouvel exe pour quand tu as un nouveau format.
Il existe des outils qui t'aident beaucoup à écrire la XSLT
par exemple http://www.altova.com/products_mapforce.html

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
Avatar
David Alloza
"Remi Thomas - MVP" a écrit dans le message de news:

"David Alloza" écrivit


....




Salut David,

Je ne pense pas que cela soit possible et donc qu'un outil de ce style
existe.
Pas contre tu peux t'en sortir avec une XSLT, transformation XML qui te
permet de transformer la sérialisation XLM d'un format inconnu vers ton
format XML que tu sais exploiter. Bien entendu il faut que quelqu'un
écrive cette XSLT, mais cela devient un paramètre de ton programme, pas
besoin de regénérer un nouvel exe pour quand tu as un nouveau format.
Il existe des outils qui t'aident beaucoup à écrire la XSLT
par exemple http://www.altova.com/products_mapforce.html

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv






Bonjour Rémi,
Dans un permier temps je vais tenter de forcer mes collègues qui me
fournissent les XML à me fournir, en même temps un shema XML ( fichier xsd )
décrivant précisément les typages.
Si ils sont récalcitrants, je me tournerai vers la solution que tu propose.
Merci pour ta réponse.
David.