Developpez.com - Rubrique XML

Le Club des Développeurs et IT Pro

Outils XML pour Notepad++

Par Pierre Gradot

Le 2012-06-20 13:41:52, par Bovino, Rédacteur


Pierre Gradot vous propose son premier article : Outils XML pour Notepad++ présentant le plugin XML Tools.

N'hésitez pas à faire part de vos commentaires et remarques.

Outils XML pour Notepad++.

  Discussion forum
7 commentaires
  • Bktero
    Modérateur
    CORRECTION :
    Etant le responsable de cet article, je viens corriger une erreur qui ne m'est pas imputable Dans l'article, je dis que 4 DLL sont disponibles "ici" et "ici" pointe vers : http://sourceforge.net/projects/npp-...ternal%20libs/
    Or, vous constaterez en cliquant dessus que le lien ne ramène pas au bon endroit. En effet, le répertoire External libs a été supprimé de l’arborescence de SourceForge. Les 4 DLL externes sont maintenant incluses dans l'archive RAR du plugin, dans un sous-répertoire Ext_libs. Ces 4 DLL sont toujours à placer comme indiqué dans l'article, avec l'exécutable notepad.exe. Vous pouvez télécharger la dernière version de XML Tools ici : http://sourceforge.net/projects/npp-...icode%20Beta4/

    @Bovino : je vais mettre à jour l'article sur mon blog, mais comment puis-je modifier la version Developpez ? Merci pour la publication
  • Bovino
    Rédacteur
    La correction a été apportée à l'article, sauf que "ici" pointe vers la racine du projet, afin de pouvoir facilement récupérer la dernière version disponible (plus de clics mais pas de souci de version).

  • Loceka
    Expert confirmé
    Je ne sais pas si on peut répondre ici, mais dans le doute...

    Alors j'ai aussi testé XML Tools (ainsi que tous les plugins XML/HTML Notepad++ que j'ai pu trouver) dans le but d'indenter un fichier XML et il a été incapable de le faire sous prétexte que le XML n'était pas correct (il y'avait des entités utilisées sans DTD, donc aucune erreur syntaxique XML à proprement parler).

    Pareil pour les autres plugins XML d'ailleurs.
    Quant aux plugins pour le HTML, du moment qu'ils ne reconnaissent pas la balise comme étant du HTML, ils n'apprécient pas.

    Bref, pour ma part j'ai été un peu déçu par le zèle de tous ces plugins qui se sont tous avérés inutilisables pour moi.

    D'ailleurs je ne vois pas l'intérêt de leur fonction de validation du XML vu qu'il le fait au préabable pour quasiment chaque opération.

    Du coup j'ai été obligé de me faire mon propre plugin pour indenter le XML/SGML.
  • thelvin
    Modérateur
    Envoyé par Loceka
    (il y'avait des entités utilisées sans DTD, donc aucune erreur syntaxique XML à proprement parler).
    Tout de même, c'est mal formé, ça. Il y a un sacré paquet d'outils qui refuseront systématiquement de toucher à un document mal formé, tu n'auras que des emmerdes en continuant de penser qu'il n'y a "pas d'erreur à proprement parler" puisque la plupart des outils ne seront pas d'accord avec toi.

    Après, bon, quand on veut utiliser des fichiers qui ont cette erreur-là, c'est sûr que ça ferait du bien, un peu de souplesse de la part de l'éditeur de texte, qu'il refuse pas d'indenter, problème qui n'a franchement rien à voir.

    Envoyé par Loceka
    D'ailleurs je ne vois pas l'intérêt de leur fonction de validation du XML vu qu'il le fait au préabable pour quasiment chaque opération.
    C'est pas de la validation, c'est du parsing avec construction de l'arbre de données. Ça inclut la vérification si le document est bien formé ou mal formé, ça ne s'intéresse pas à la validation.
  • Loceka
    Expert confirmé
    Envoyé par thelvin
    Après, bon, quand on veut utiliser des fichiers qui ont cette erreur-là, c'est sûr que ça ferait du bien, un peu de souplesse de la part de l'éditeur de texte, qu'il refuse pas d'indenter, problème qui n'a franchement rien à voir.
    Surtout quand on doit utiliser des fichiers comme ça.
    Moi c'est mon appli au boulot qui me ressort des fichiers avec des entités, qu'il peut retrouver grâce à un catalogue interne. Bien entendu ce catalogue n'est pas exporté de l'appli avec le fichier XML en question.

    Et je suis d'accord, les entités n'ont pas grand chose à voir avec la structure du document. Du coup ça me fait râler quand il me ressort qu'il ne peut pas l'indenter à cause d'une erreur comme ça...

    Le seul outil capable d'indenter sans se soucier des entités (ni même des erreurs syntaxiques, comme des balises non fermées d'ailleurs) c'est l'indenteur d'Eclipse.
    Malheureusement, dès que le XML dépasse les 1 ou 2 Mo, ça freeze eclipse et y'a plus qu'à killer le process.

    Sachant que mes documents font entre 10 et 300 Mo autant dire que c'est juste pas utilisable.

    D'ailleurs, si ça peut intéresser des gens, je joins le script que j'ai fait pour indenter des fichiers SGML ou XML.
    A priori y'a pas plus de bugs, mais on ne sait jamais...
    Il suffit d'avoir Perl pour le lancer avec comme unique argument le nom du fichier à indenter :
    Code :
    perl DOMIndenter.pl mon_fichier.xml
    Il indente des fichiers SGML de 300Mo en 5 minutes sur un core i3 premier prix et 3Go de RAM.
    A priori la seule limitation pour la taille du XML en entrée est la mémoire disponible (il prend jusqu'à 3x la taille en RAM).
  • thelvin
    Modérateur
    Envoyé par Loceka
    Surtout quand on doit utiliser des fichiers comme ça.
    Mouais, enfin mal formé c'est mal formé, ça veut dire ce que ça veut dire.
    C'est quand même pas compliqué d'ajouter un petit doctype pointant vers une .dtd qui n'existe pas mais pourrait exister si ta boîte décidait un jour d'exporter cette bibliothèque sous forme de .dtd avec un webservice interne. Et dont personne n'a rien à cirer s'il existe ou pas puisque les parseurs ne sont pas validants.

    'Fin bon. Je ferais mieux d'arrêter de dévier, et jeter un œil à ces outils pour Notepad++

    Et merci pour l'outil d'indentation, au fait. Je fais pas de SGML, mais je touche du bois.
  • djibril
    Responsable Perl et Outils
    Comment faire en sorte qu'à la validation XML, les erreurs nous indiquent les numéro de ligne dans le XML ?