Cosa fa il formattatore XML
L’XML memorizza dati strutturati sotto forma di tag annidati. Si usa nei feed RSS, nelle sitemap, nelle API SOAP, nei layout Android, nei file pom.xml di Maven, nei documenti Office e in molte esportazioni di dati. Spesso i programmi lo scrivono su un’unica lunga riga. Questo formattatore XML lo impagina con un elemento per riga e un’indentazione coerente, così l’annidamento è facile da seguire.
Ci sono tre azioni:
- Formatta indenta l’XML.
- Minifica toglie gli spazi tra i tag per rendere il file più piccolo.
- Convalida verifica che il documento sia ben formato e segnala il primo problema.
Come si usa
- Incolla l’XML nel riquadro a sinistra, premi Apri file oppure Esempio. L’XML incollato viene formattato subito.
- Scegli un Rientro di 2 spazi, 4 spazi o tabulazioni.
- Premi Formatta, Minifica o Convalida. Ctrl+Invio ripete l’ultima azione.
- Premi Copia o Scarica per salvare il risultato come file
.xml.
Prima e dopo
Un catalogo di prodotti su una sola riga:
<?xml version="1.0" encoding="UTF-8"?><catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><price>44.95</price></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><price>5.95</price></book></catalog>
Dopo Formatta con 2 spazi:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<price>44.95</price>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<price>5.95</price>
</book>
</catalog>
Il contenuto testuale resta sulla stessa riga del suo elemento. È importante, perché un a capo dentro <price>44.95</price> cambierebbe il valore letto da un programma.
Minifica riporta la versione formattata all’unica riga mostrata sopra. Convalida sullo stesso input riporta: Well-formed XML. Root element <catalog>, 9 elements in total. (XML ben formato, elemento radice catalog, 9 elementi in totale).
Le sezioni CDATA restano esattamente come le hai scritte, quindi <script><![CDATA[if (a < b) run();]]></script> esce invariato.
Gli errori che il controllo individua
Molti formattatori XML “riparano” in silenzio il markup non valido, per esempio chiudendo un tag in un punto che non volevi. Questo controlla prima il documento e si ferma al primo problema. Questi sono messaggi reali:
| Input | Messaggio |
|---|---|
<to>Tove</from> |
Riga 2, colonna 11: Il tag di chiusura </from> non corrisponde a <to> aperto alla riga 2 |
Smith & Sons |
Riga 1, colonna 16: Una "&" isolata va scritta come & |
Un <item> mai chiuso |
Riga 4, colonna 1: Il tag di chiusura </list> non corrisponde a <item> aperto alla riga 3 |
<book id=101/> |
Riga 1, colonna 10: Il valore di "id" va scritto tra virgolette |
| Due elementi di primo livello | Riga 2, colonna 1: È ammesso un solo elemento radice, ne è stato trovato un secondo: <b> |
Premi Mostra nell’input per spostare il cursore sul problema.
Cosa significa “ben formato”
Un documento XML è ben formato quando rispetta le regole di sintassi di base:
- Ogni tag di apertura ha un tag di chiusura corrispondente, oppure si chiude da solo come
<br/>. - I tag si chiudono nell’ordine inverso a quello di apertura.
- C’è un solo elemento radice.
- I valori degli attributi sono tra virgolette singole o doppie, e nessun attributo compare due volte nello stesso elemento.
- Una
&o un<letterali nel testo si scrivono&o<. - La dichiarazione
<?xml ... ?>, se presente, è la primissima cosa del file.
Le entità con nome come sono ammesse solo se le dichiara un DOCTYPE, perché l’XML di per sé ne conosce solo cinque: <, >, &, ' e ".
Consigli e limiti
- La convalida non usa uno schema. Un documento può essere ben formato e contenere comunque gli elementi sbagliati per la tua applicazione.
- Gli spazi dentro il testo vengono mantenuti. Se devi ridistribuire il testo su più righe, fallo a mano.
- La minificazione conserva i commenti. Eliminali prima se ti serve il file più piccolo possibile.
- Tutto gira in locale, quindi puoi incollare senza problemi configurazioni interne ed esportazioni.
Altri modi per formattare l’XML
xmllint. Su Linux e macOS, xmllint --format file.xml stampa una copia indentata e xmllint --noout file.xml segnala solo gli errori. Con --schema può anche verificare il file rispetto a uno schema.
VS Code. Installa un’estensione XML (quella di Red Hat è una scelta diffusa), poi esegui Format Document.
Notepad++. Il plugin XML Tools aggiunge il comando Pretty Print.
Strumenti correlati
Se i tuoi dati sono in JSON, usa il formattatore JSON. Per i file di configurazione, il formattatore YAML fa lo stesso lavoro con lo YAML. Per le pagine web usa il formattatore HTML, che conosce regole dell’HTML che l’XML non ammette.