Formatter XML

I dump XML minificati provenienti da servizi SOAP, feed RSS e esportazioni di configurazione sono illeggibili in una sola riga. Questo formatter analizza il documento, lo ricostruisce con un’indentazione coerente (2 o 4 spazi, tabulazioni o nessuna indentazione per l’output minificato), preserva l’ordine degli attributi e le sezioni CDATA, e riporta eventuali problemi di ben formatezza con la riga e la colonna esatte in modo da poter correggere i tag non corrispondenti senza cercare.

Come formattare XML

  1. 1

    Incolla XML

    Qualsiasi lunghezza, qualsiasi codifica; la dichiarazione è preservata.

  2. 2

    Scegli indentazione

    Spazi (2 o 4), tabulazioni o minifica.

  3. 3

    Formatta

    Il parser costruisce un DOM e poi lo ri-serializza con spaziatura coerente.

  4. 4

    Copia risultato

    L'output è un XML ben formato pronto per essere incollato in log o documenti.

Cosa preserva la formattazione

  • Dichiarazione XML (<?xml version="1.0" encoding="UTF-8"?>) mantenuta alla lettera.
  • Dichiarazioni DOCTYPE e sottoinsiemi interni preservati.
  • Istruzioni di elaborazione (<?xml-stylesheet ?>) mantenute su una propria riga.
  • Commenti su una propria riga o inline a seconda del contesto.
  • Sezioni CDATA preservate esattamente, compresi gli spazi bianchi all’interno.
  • Valori degli attributi ri-quotati usando virgolette doppie se non contengono virgolette doppie, virgolette singole altrimenti.
  • Riferimenti entità come &amp;, &lt;, &gt; lasciati così come sono a meno che non attivi l’espansione completa delle entità.

Esempi di indentazione

Input (minificato):

<books><book id="1"><title>1984</title><author>George Orwell</author></book></books>

Formattato (2 spazi):

<books>
  <book id="1">
    <title>1984</title>
    <author>George Orwell</author>
  </book>
</books>

Errori comuni che lo strumento rileva

Errore Correzione
Tag di chiusura non corrispondente Abbina i nomi di apertura e chiusura
Elemento non chiuso Aggiungi il tag di chiusura
Carattere non valido nel nome del tag I nomi dei tag devono iniziare con una lettera o un underscore
Attributi duplicati sullo stesso elemento Rimuovi il duplicato
CDATA malformato Controlla il pairing <![CDATA[ e ]]>
< o & non scappati nel testo Usa &lt; o &amp;

Ben formato vs valido

  • Ben formato XML segue le regole sintattiche: tag bilanciati, caratteri validi, nidificazione corretta. Il formatter controlla questo.
  • Valido XML si conforma inoltre a uno schema (DTD o XSD). Per questo, usa il validatore XSD.

Un documento XML può essere ben formato senza essere valido, ma non viceversa.

Note pratiche

  • L’ordine degli attributi XML è significativo per alcuni sistemi (non molti moderni), il formatter preserva l’ordine di input.
  • Tag auto-chiudenti vs tag vuoti espliciti: <foo/> e <foo></foo> sono equivalenti in XML; il formatter usa auto-chiusura per elementi vuoti a meno che tu non decida diversamente.
  • I prefissi di namespace sono preservati esattamente.

Domande frequenti

Sì. Il testo all’interno di elementi a contenuto misto e sezioni CDATA è mantenuto così com’è; solo gli spazi bianchi tra gli elementi sono regolati per l’indentazione.

Il limite pratico è di circa 50 MB nel browser. Oltre, il parsing del DOM consuma troppa memoria. Per file enormi usa un formatter streaming come xmllint dalla riga di comando.

Sì. Le dichiarazioni di namespace sono preservate sul loro elemento; il formatter non le riordina alla radice a meno che tu non attivi “consolidare i namespace”.

No. Il parsing e la formattazione avvengono nel tuo browser, nulla viene trasmesso.

Strumenti correlati

Strumento disponibile in altre lingue