Le code de cette page n'a pas démarré.

Ouvrir index.html directement depuis un dossier bloque les modules JavaScript, si bien que rien ne se passera au moment de choisir un fichier. Servez plutôt le dossier en http :

powershell -ExecutionPolicy Bypass -File serve.ps1

Ouvrez ensuite http://localhost:8080/.

Formateur XML — le mettre en forme, le compacter ou le convertir en JSON

Du XML mis en forme pour être lu ou compacté pour être livré, et converti en JSON dans les deux sens. Rien de tout cela n'est collé dans le serveur de quelqu'un d'autre.

Langue: Français
Voir le code
Vos fichiers XML et JSON sont traités dans votre navigateur. Aucun envoi pour traitement.

Mettre en forme et convertir, c'est de l'arithmétique sur une chaîne de caractères, faite ici, dans cette page. L'analyseur est écrit à la main et se trouve dans src/shared/parse-xml.js, et il n'y a rien d'autre. Cet outil n'a aucune fonction réseau d'aucune sorte — rien à récupérer, rien à envoyer — ce qui compte ici plus que le mot « XML » ne le laisse croire : ce qui arrive dans ce format est le plus souvent une facture, un relevé bancaire, un dossier médical, ou une requête SOAP avec les identifiants de quelqu'un dans l'en-tête.

Vérification en direct : vérification…

Hors ligne : vérification…

Inutile de nous croire sur parole : ouvrez les DevTools, regardez l'onglet réseau et mettez quelque chose en forme. Pas une requête ne transporte un caractère de ce que vous avez collé. Ou débranchez internet et mettez-le en forme quand même.

1 Choisissez le travail

Mise en forme Compacté à plat, c'est le même document sans aucune des espaces qui n'étaient là que pour la lecture.

Nom de l'élément extérieur XML a un seul élément tout en haut, JSON non : il faut donc en inventer un.

2 Collez-le

vide

3 Emportez le résultat

Rien pour l'instant.

 

Voir en Markdown

Comment mettre du XML en forme sans l'envoyer

  1. Choisissez le travail.Deux onglets, une seule boîte : Mettre en forme déplie le XML ou le compacte ; Convertir le transforme en JSON, ou le JSON de nouveau en XML. Le XML que vous venez de mettre en forme est celui que vous convertissez, sans le coller deux fois.
  2. Collez-le, ou déposez le fichier.Tout ce que vous pouvez sélectionner et copier convient, et un fichier .xml, .svg, .rss ou .xsd déposé sur le sélecteur est lu par votre propre navigateur et placé dans la boîte — il n'y a pas d'étape d'envoi à omettre.
  3. Choisissez l'indentation, ou compactez-le.Deux espaces, quatre, ou une tabulation. Compacté, c'est le même document sans aucune des espaces qui n'étaient là que pour la lecture, et le résultat dit combien d'octets cela a fait gagner.
  4. Lisez l'erreur là où elle est.Un analyseur qui échoue ici dit quelle balise n'a jamais été fermée, et à quelle ligne et quelle colonne, plutôt que « erreur à la ligne 1 », ce qu'un navigateur dit d'un document qu'il a lu d'un seul tenant. Choisissez Aller à l’erreur pour revenir à cette position dans le texte. La saisie garde le focus à sa place jusqu’à ce que vous demandiez à le déplacer.
  5. Emportez le résultat.Copiez-le, ou téléchargez-le sous forme de fichier, nommé d'après le format dans lequel il est sorti.

La version longue

Comment formater et vérifier XML Formatez, minimisez et vérifiez XML localement. Suivez les erreurs et comprenez la conversion des attributs, textes et tableaux avant de passer en JSON.

Questions

Mon XML est-il envoyé quelque part ?

Non. L'analyseur et l'imprimeur de cette page sont des fonctions qui tournent dans votre propre navigateur, sur votre propre matériel. Cet outil n'a aucune fonction réseau d'aucune sorte — il ne récupère jamais rien et n'envoie jamais rien — et la Content-Security-Policy de la page nomme chaque adresse qu'elle peut contacter, dont aucune ne nous appartient. Cela compte plus pour le XML que la réputation du format ne le suggère : ce qui y arrive est le plus souvent une facture, un relevé bancaire, un dossier médical, ou une requête SOAP avec des identifiants dans l'en-tête.

Résout-il les entités externes ?

Non, et il n'y a rien à désactiver. La résolution des entités externes est la façon dont on persuade un analyseur XML de lire des fichiers sur la machine qui l'exécute — l'attaque qu'on écrit d'ordinaire XXE — et src/shared/parse-xml.js est un lecteur écrit à la main sans aucune résolution d'entité. Votre texte n'est jamais confié non plus au DOMParser du navigateur. Un DOCTYPE est transporté tel quel sans jamais être exécuté.

Que perd-on en convertissant du XML en JSON ?

L'ordre du contenu mixte, les commentaires, et la différence entre un attribut et un élément enfant — cette dernière étant adoucie plutôt qu'effacée, puisqu'un attribut devient un membre dont le nom commence par @. Le texte propre d'un élément devient #text lorsqu'il doit cohabiter avec autre chose, et les enfants répétés deviennent un tableau. Chaque valeur reste une chaîne : le XML n'a pas de types, et décider que 8080 était un nombre reviendrait à inventer une information.

Que perd-on en convertissant du JSON en XML ?

La différence entre un objet vide, un tableau vide et une chaîne vide, qui deviennent tous trois un élément vide, et le type de chaque valeur, puisque le XML n'a pas de types. Un tableau devient un élément répété, la seule forme qui se relise, et une clé qu'un nom d'élément ne peut pas porter voit ses caractères gênants remplacés plutôt que de produire un document qu'aucun analyseur ne lira.

Peut-il mettre en forme un SVG, un flux RSS ou un fichier POM ?

Oui. Tous les trois sont du XML, et ceci lit du XML plutôt qu'un dialecte particulier. Un SVG mis en forme ainsi est plus facile à modifier à la main ; un flux RSS ou Atom est d'ordinaire livré compacté et reste illisible tant que rien ne le déplie. La disposition ne change rien à ce que le document signifie.

Réindenter du XML change-t-il son sens ?

Pour un document dont les éléments contiennent d'autres éléments, non. Là où cela peut compter, c'est le texte : les espaces à l'intérieur d'un élément qui contient des mots font partie de ce texte, donc un élément ne contenant que du texte est laissé sur une seule ligne plutôt que déplié. Les sections CDATA sont recopiées exactement telles quelles.

Pourquoi ne pas utiliser l'analyseur XML du navigateur ?

À cause de ce qu'il dit quand le document est cassé. Le DOMParser renvoie un document d'erreur dont la formulation diffère dans chaque navigateur et se résume souvent à « erreur à la ligne 1 ». Un lecteur écrit à la main peut dire quelle balise n'a jamais été fermée, et où elle a été ouverte, ce qui est justement ce que vous aviez besoin de savoir. Ne pas résoudre les entités externes est l'autre raison.

Quelle taille de fichier peut-il traiter ?

Aucune limite n'est inscrite ici, parce qu'aucun serveur ne la paie. Le plafond réel est votre propre machine : quelques mégaoctets de XML passent bien, et pour un document très long la page attend une pause dans votre frappe avant de remettre en forme, plutôt que de vous disputer le clavier.

Est-ce gratuit, et faut-il un compte ?

C'est gratuit, et il n'y a ni compte, ni identification, ni période d'essai, ni limite à ce que vous collez. Le site affiche de la publicité, et c'est elle qui le finance ; les annonces ne reçoivent rien sur votre texte.

Est-ce que cela fonctionne hors ligne ?

Oui. Chargez la page une fois, puis débranchez internet et elle continue de fonctionner. C'est aussi la façon la plus simple de prouver que rien n'est envoyé : un outil qui expédierait votre XML pour le mettre en forme s'arrêterait à l'instant où vous débranchez.