Question

Lorsque je veux valider mes documents XML par rapport à un schéma de mon serveur Java, j'utilise l'implémentation JRE Xerces intégrée et javax.xml.validation.Schema. Cela fonctionne bien, mais lorsque la validation échoue, Xerces affiche des messages d'erreur très proches d'inutiles, par exemple:

cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'PopulatedStringType'

Cela peut prendre un certain temps pour diagnostiquer et localiser la partie du document XML dont la validation échoue, et cela à cause d'un message d'erreur insuffisant.

Donc, ma question est la suivante: utilisez-vous un autre moyen de valider XML par rapport au schéma, qui donne un résultat plus utile en cas d’échec de la validation?

Veuillez noter qu'il ne s'agit pas de Java côté serveur. Par conséquent, n'indiquez pas "utiliser XML Spy". ou similaire.

Était-ce utile?

La solution

Dans votre gestionnaire pour la validation, vous devriez recevoir une exception SAXParseException avec ce message, ainsi que le numéro de colonne et numéro de ligne dans le fichier XML. N'est-ce pas le cas?

Autres conseils

Nous utilisons le kit de développement XML (SDK) d'Oracle qui comprend xmlparserv2.jar avec un analyseur de validation et XSLT 2.0. Il utilise l'API JAXB, il vous suffit donc de l'ajouter à votre chemin de classe et de modifier vos importations. Cela jette des erreurs qui ne sont pas parfaites, mais je dirais plus faciles à comprendre que votre exemple.

xmlstarlet (xmlstar.sourceforge.net/) est une boîte à outils en ligne de commande. vous pouvez l'exécuter en utilisant Runtime.exec () pour un xml donné (tant que le xml est dans un fichier).

Nous utilisons Castor .

  

Castor est un framework de liaison de données Open Source pour Java [tm]. C'est le chemin le plus court entre les objets Java, les documents XML et les tables relationnelles. Castor fournit une liaison Java-XML, une persistance Java-SQL et plus encore.

Si vous rencontrez des difficultés pour interpréter les erreurs Xerces et que vous souhaitez obtenir une aide permettant de mettre en évidence l'endroit où vous avez enfreint les règles dans votre document, consultez certains des outils de création XML tels que oXygen .

 alt text
(source: oxygenxml.com )

Une fois que vous avez associé le schéma à votre document XML d'instance, l'éditeur met en évidence la zone incriminée du document et vous fournit une description de la violation.

De plus, vous pouvez utiliser différents moteurs pour effectuer la validation:

  

oXygen dispose d’un support intégré pour:   Xerces, LIBXML, XSV, Saxon SA,   MSXML4.0, MSXML .NET et SQC.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top