2010-06-30 8 views
9

Je travaille avec un schéma qui a été construit par un tiers et je voudrais le valider avec lxml. Le problème est qu'un tel schéma est divisé sur différents fichiers xsd, qui se référent eux-mêmes.Python - Validation avec plusieurs schémas utilisant lxml

Par exemple, un fichier appelé « extension.xsd » (qui se base sur le schéma « maître ») a une ligne comme:

<redefine schemaLocation="master.xsd"> 

Si je tente de le valider avec lxml (analyse syntaxique, puis en utilisant XMLSchema puis valider un autre document que je sais déjà valide), je ne reçois la validation qu'en "extension" et non en "master": autrement dit, la validation échoue (car dans le fichier XML il n'y a que des éléments "master" pas en "extension"). Comment puis-je résoudre ce problème (ou contourner ce problème)? Merci!

Répondre

1

Si lxml ne supporte pas "redefine", la meilleure option serait de le réparer et de soumettre un patch.

A défaut, la solution consiste à analyser vous-même le fichier master.xsd, puis à appliquer les modifications à partir de extension.xsd et à générer un seul fichier xsd avec le schéma combiné.

Questions connexes