2017-02-24 2 views
0

J'ai une bibliothèque Saxon9ee.jar et je veux valider le fichier XML par rapport au schéma DTD situé dans le fichier externe (pas à l'intérieur de XML) en utilisant Saxon9ee avec l'interface de ligne de commande. Je trouvé comment valider XML par rapport au schéma XSD:Comment valider XML contre DTD en utilisant Saxon de la ligne de commande

java -cp saxon9ee.jar com.saxonica.Validate -xsd:<XSD_file> -s:<XML_file> -xsdversion:1.1 

Mais comment puis-je faire la même chose avec le fichier de schéma DTD?

Répondre

1

La validation contre une DTD n'implique pas du tout Saxon, tout est fait dans l'analyseur XML. Mais bizarrement, l'analyseur Xerces est plutôt pauvre en termes d'interfaces de ligne de commande, donc l'invoquer via Saxon est probablement le moyen le plus pratique de le faire. Exécutez la requête la plus simple possible, avec la validation DTD activée:

java net.sf.saxon.Query -qs:. -s:source.xml -dtd:on 
+0

Nous vous remercions de votre réponse. Mais comment, dans votre cas, le validateur saura qu'il doit utiliser le fichier de schéma DTD et quel fichier utiliser? C'est un fichier de schéma DTD externe et le fichier XML n'a pas de déclaration avec un lien vers celui-ci. Est-ce qu'il applique automatiquement tous les fichiers DTD dans le dossier ou quoi? – sunigos

+0

Je ne connais aucun moyen de valider un fichier XML par rapport à une DTD si le fichier XML n'a pas de déclaration DOCTYPE faisant référence à la DTD. Vous pouvez rediriger la référence DTD vers un emplacement différent, mais s'il existe un moyen de fournir une référence DTD à l'extérieur, je ne la connais pas. –