Recherche

Coder's IO

Tag

Xml

The Processing Instruction Target Matching « [xX][mM][lL] » is Not Allowed

J’ai récupéré cet article de mon blog précédent ici

Quel titre barbare! En fait c’est le message d’erreur remonté lorsque l’on essaye de parser un fichier xml.

C‘est le genre d‘erreur, je trouve, qui peut faire perdre pas mal de temps :

The Processing Instruction Target Matching « [xX][mM][lL] » is Not Allowed

Bizarrement dans mon IDE favori (Eclipse, à l’époque) je l’ai eu en francais :

La cible de l’instruction de traitement correspondant à « [xX][mM][lL] » est interdite

Cette erreur est du au fait qu’il y ai un espace, ou une ligne, avant la ligne entête :

En référence le site ou j’ai trouvé la solution : ici

XmlUnit

Dans la famille Unit, j’avais déjà évoqué DBUnit et MoreUnit. Aujourd’hui, je vais vous présenter XMLUnit.
Cet outil est une extension du célèbre framework de tests JUnit.
Cette extension, comme son nom l’indique, offre la possibilité d’effectuer des tests sur la vérification et la validation de fichiers au format XML.

Vous me direz sûrement : mais à quoi nous sert les DTDs et XSDs, sinon à faire ce travail de validation ? Et je vous répondrais que cette validation s’attache à vérifier uniquement la structure du document (si la balise A est bien avant la balise B et si l’attribut, obligatoire, est bien présent dans la balise Z).
XmlUnit nous permet d’aller plus loin et de vérifier le contenu du fichier XML.

Imaginons un service qui va émettre une requête au format XML. Pour créer cette requête, le système va extraire des données et les mettre en forme dans un fichier XML afin de pouvoir l’adresser au service concerné.

Pour couvrir le code générateur du fichier XML par des tests unitaires pertinents, il va falloir être capable de vérifier que le fichier généré est conforme en termes de structure et de données relativement aux spécifications du service.
A l’aide de XmlUnit, cette tâche va être simplifiée. Il faudra fournir en entrée un fichier XML représentant la requête attendue et le fichier qui a été généré par le système.

Ce que je viens d’écrire ci-dessus est la principale fonctionnalité du framework, mais celui-ci est aussi capable de :
– donner les différences entre deux fichiers XML (ce que nous venons de voir)
– d’effectuer une validation partielle d’un fichier XML (via une classe de Validator)
– de valider le résultat d’une transformation via XSLT (via une classe Transform)
– d’évaluer une expression XPath sur une partie d’un fichier XML (via une interface XpathEngine
– etc

XmlUnit est aussi capable de travailler avec du HTML.

Pour mettre en oeuvre cela, l’outil fournit une classe XMLTestCase et un jeu d’assertions dédiées à la validation XML.
Le site fournit pas mal d’exemples de la vraie vie, ce qui permet de monter rapidement en compétence.

C’est un des outils qu’il est toujours utile d’avoir dans sa trousse à outils.
La dernière release remonte à septembre 2009. Il existe aussi une version pour la plateforme .Net (dernière release avril 2009)

#java #test #xml #unit

Créez un site Web ou un blog gratuitement sur WordPress.com.

Retour en haut ↑

Concevoir un site comme celui-ci avec WordPress.com
Commencer