web-dev-qa-db-fra.com

Valider un schéma XSD?

J'écris un schéma XML (un XSD) pour décrire le format dans lequel nos partenaires doivent nous envoyer des données.

Et j'ai du mal à trouver un outil qui puisse valider le fichier de schéma XSD que j'ai écrit.

La meilleure façon que j'ai trouvée jusqu'à présent est d'écrire d'abord un exemple de fichier XML d'entrée, puis d'essayer de valider that avec le XSD. Mais cela ne ressemble pas à une manœuvre de bonnes pratiques.

Alors, comment dois-je valider un schéma XML?

33
Alexander Kjäll

Si c'est une chose à court terme, vous pouvez utiliser une copie d'évaluation d'un outil comme Stylus Studio .

S'il s'agit d'une maintenance à long terme, vous voudrez peut-être envisager d'acheter un éditeur de schéma XML comme Stylus, ou Oxygen ou Altova .

Vous n'avez pas spécifié la langue source, mais ce n'est que quelques lignes de code pour écrire un validateur de schéma dans Java ou .Net.

12
lavinio

Le W3C a un validateur en ligne pour les schémas XML à http://www.w3.org/2001/03/webdata/xsv . Étant donné que le W3C est la source de la spécification de schéma XML, leur validateur doit être fiable.

13
Matt Lavin

le SDK Java SDK est fourni avec un outil standard appelé xjc . Cet outil génère les classes analysant votre schéma. Vous pouvez utiliser ce code pour valider la saisie de vos partenaires.

Voir aussi: http://www.Java2s.com/Tutorial/Java/0440__XML/ThexjcTool.htm

7
Pierre
cd /the/dir/with/your/schema
curl -O https://www.w3.org/2012/04/XMLSchema.xsd
xmllint.exe --noout --schema XMLSchema.xsd <your schema>

Dans * nix (y compris git-bash ou similaire sous Windows), si le schéma est valide, alors $? == 0 autre $? == 1. Je suis sûr qu'il y a un équivalent PowerShell ...

Cela venait d'un commentaire de @ AlexanderKjäll à une réponse de @lavinio ailleurs ici. J'ai ajouté mon propre commentaire pour dire que @ AlexanderKjäll devrait ajouter ceci comme réponse. Cependant (pour moi au moins), ce n'était pas tout à fait correct car cela ne fonctionnera pas en utilisant l'URI du fichier distant. Et donc ma réponse. Si vous votez pour cela, veuillez voter pour leur commentaire.

2
HankCa

Alors, comment dois-je valider un schéma XML (XSD)?

La question que vous posez est bonne. Le simple fait de "le faire voler" est susceptible de vous causer des ennuis. Extrait de l'article Wikipedia Éditeur de schéma XML (le mien est souligné):

Le standard [Schéma XML W3C] est polyvalent, permettant la programmation de concepts tels que l'héritage et la création de types, mais il est complexe . La norme elle-même est très technique et publiée en 3 parties différentes, ce qui la rend difficile à comprendre sans commettre de grandes quantités de heure .

Ainsi, étant donné la complexité de la norme de schéma XML W3C, comment vous assurez-vous qu'un schéma que vous créez est conforme à cette norme? Du même article Wikipedia:

Les problèmes rencontrés par les utilisateurs lorsqu'ils travaillent avec la norme XSD peuvent être atténués grâce à l'utilisation d'outils d'édition graphique. Bien que n'importe quel éditeur de texte puisse être utilisé pour modifier un schéma XML, un éditeur graphique offre des avantages; permettant à la structure du document d'être visualisée graphiquement et éditée avec un support de validation, des aides à la saisie et d'autres fonctionnalités utiles.

Au bas de cet article Wikipédia, vous trouverez une liste d'éditeurs de schémas XML, dont certains sont autorisés en tant que "logiciel libre".

1
DavidRR