Après quelques recherches, je pense que la meilleure réponse est Xerces , car il implémente tout XSD, est multiplateforme et largement utilisé. J'ai créé un petit projet Java sur github pour valider à partir de la ligne de commande en utilisant l'analyseur JRE par défaut, qui est normalement Xerces. Cela peut être utilisé sur Windows / Mac / Linux.
Il existe également une version C ++ de Xerces disponible si vous préférez l'utiliser. L' utilitaire StdInParse peut être utilisé pour l'appeler à partir de la ligne de commande. En outre, un commentateur ci-dessous pointe vers cet utilitaire d'encapsulation plus complet .
Vous pouvez également utiliser xmllint, qui fait partie de libxml . Vous l'avez peut-être déjà installé. Exemple d'utilisation:
xmllint --noout --schema XSD_FILE XML_FILE
Un problème est que libxml n'implémente pas toutes les spécifications, vous pouvez donc rencontrer des problèmes :(
Alternativement, si vous êtes sous Windows, vous pouvez utiliser msxml , mais vous aurez besoin d'une sorte de wrapper pour l'appeler, comme celui de l'interface graphique décrit dans cet article DDJ . Cependant, il semble que la plupart des gens sous Windows utilisent un éditeur XML, tel que Notepad ++ (comme décrit dans la réponse de Nate ) ou XML Notepad 2007 comme suggéré par SteveC (il existe également plusieurs éditeurs commerciaux que je ne mentionnerai pas ici).
Enfin, vous constaterez que différents programmes donneront malheureusement des résultats différents. Cela est largement dû à la complexité de la spécification XSD. Vous voudrez peut-être tester votre schéma avec plusieurs outils.
MISE À JOUR : J'ai développé cela dans un article de blog .