-
XSD et XPATH
Bonjour,
J'ai un logiciel qui utilise un (et même des) fichier(s) XML pour fonctionner. J'ai écrit une bonne partie de mon soft en C# qui utilise du Xpath pour récupérer les noeuds.
Dernièrement je me suis décidé à implémenter une vérification XML, à l'aide d'un XSD. Mais je me suis rendu compte que je devais réécrire tout ce qui était en xpath avec les namespaces associés.
J'ai un gros soucis parce que je me vois mal changer tout mon code xpath (j'en ai mis un peu dans tout les coins, et pas que dans mes classes de conf...), et d'un autre côté il faut absolument que je valide mon document XML.
La vérification de la validité du XML se fait au démarrage du logiciel donc limite à un moment je me disais que j'allais faire un parseur qui me supprime mon xmlns... de mon XML pour plus qu'il n'utilise le XSD mais c'est super crade.
J'aimerais bien trouver une solution propre... si quelqu'un a une idée ?
Utiliser une DTD à la place d'un XSD serait une solution pour une pas avoir à réécrire tout ce qui a été fait en Xpath ?
Merci
-
Je comprends pas, en fait, si tu avais un namespace ou pas, quoi qu'il en soit ça dépend pas de la validation ?
Si par hasard tu croyais qu'on ne peut valider en XSD que des élements qui ont un namespace, tu te trompais. xsi:noNamespaceSchemaLocation
-
Merci.
Mon problème n'est pas au niveau de la validation.. ca se fait très bien ça. Mon soucis est que j'utilise un SelectSingleNode en C# pour récupérer les différentes valeurs de ma conf. Ca me renvoie rien si je ne modifie pas mon code Xpath.. mais par contre dès que je rajoute du XmlNamespaceManager avec modification du Xpath, tout est OK.
Qu'en penses tu ?
-
Je comprends toujours pas. Tu dis que ce n'est pas la validation qui a amené le problème... Donc le problème a toujours été là ?
Tu as tout codé avec des xPath qui ne marchent pas sans jamais tester, et c'est maintenant que tu vois qu'il faut tous les changer ?