Bonjour,
Je cherche à valider un document XML avec un XML Schema, es-ce quelqu'un sait comment le faire depuis python?
Merci
Bonjour,
Je cherche à valider un document XML avec un XML Schema, es-ce quelqu'un sait comment le faire depuis python?
Merci
Si tu te débrouille en anglais: http://aspn.activestate.com/ASPN/Coo.../Recipe/220472
![]()
Bonjour,
à ma connaissance, il n'existe pas (encore) de librairie python pour valider à partir de W3C XML Schemas (plus connus par les initiales WXS ou XSD). Il existe par contre des solutions "pythonnesques" pour valider sur du Schematron (scimitar), DTD ou Relax-NG.
J'ai trouvé une librairie très intéressante! LXML elle permet de valider des documents XML depuis un XML Schema!
Elle offre également une classe ETREE pour la manipulation des document XML. Cette classe est très performante! La recherche dans un arbre est un jeu d'enfant :
root.findall("path"), ou root est la racine du document XML et PATH le chemin sous forme /global/toto/titi par exemple. Dans ce cas la fonction retournera une liste de tout les titi se trouvant dans /global/toto. En gros c'est un vrai jeu d'enfant de faire des recherches dans un document XML! Il faut pas oublier de parser le fichier avant mais ça je vous laisserais chercher dans l'api.
Merci pour vos réponses!
Attention, LXML n'est qu'un "binding" Python de libxml2, la librairie XML de Gnome écrite en C et développée par Daniel Veillard. Cette librairie ne supporte qu'une fraction de la spécification W3C XML Schemas, et en version alpha. Très stable pour ce qui concerne le parsing XML (c'est celle utilisée par PHP), je te déconseille de l'utiliser en environnement de production pour de la validation WXS.
Alors que me conseille tu? En tout cas pour le peu de test que j'ai fait ça fonctionné pas mal..
Je te conseille de faire une validation par DTD ou par Relax-NG, dont l'implémentation est bien plus aboutie.![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager