Informazioni sullo strumento
Risposte SOAP, sitemap, POM di Maven e report JUnit XML sono difficili da leggere su una sola riga. Questo formattatore verifica prima che l’input sia ben formato con il parser XML del browser, poi lo reindenta con un tokenizer che lascia CDATA, commenti, processing instruction e DOCTYPE esattamente come sono scritti. Gli elementi che contengono solo testo restano su una riga, così l’output sembra XML scritto a mano e non un tag per riga.
Come si usa
- Incolla l’XML o carica il documento d’esempio di un ordine.
- Scegli Format e un rientro (2 spazi, 4 spazi o tab), oppure Minify per comprimerlo su una riga.
- Se l’XML non è ben formato, correggi la riga e la colonna indicate nel banner rosso.
- Copia o scarica il risultato.
Ben formato non significa valido
Un XML ben formato rispetta le regole di sintassi: un solo elemento radice, ogni tag chiuso e annidato correttamente, valori degli attributi tra virgolette e caratteri speciali con escape. Un XML valido è anche ben formato e conforme a uno schema (XSD) o a una DTD che definisce quali elementi e valori sono ammessi. Questo formattatore verifica che il documento sia ben formato, perché deve poterlo analizzare prima di reindentarlo. La verifica rispetto a un XSD è un passaggio separato.
Motivi comuni per cui un XML non viene analizzato
- Una e commerciale o un segno di minore senza escape nel testo: scrivi
&e<, oppure racchiudi il testo in una sezione CDATA. - Tag che differiscono solo per maiuscole e minuscole, come
<Order>…</order>: l’XML distingue tra maiuscole e minuscole. - Più di un elemento di primo livello: racchiudili in un’unica radice.
- Un valore di attributo senza virgolette, come in
<item id=7>. - Un prefisso di namespace non dichiarato, come
<soap:Envelope>senza l’attributoxmlns:soap="…". - Qualsiasi cosa prima della dichiarazione XML:
<?xml version="1.0"?>deve essere proprio all’inizio, senza spazi prima.
Dove i tester incontrano l’XML
API SOAP ed enterprise legacy, report di test JUnit XML (il formato letto dalla maggior parte dei server di CI), file Maven pom.xml, sitemap, feed RSS e layout Android sono tutti XML. Playwright scrive JUnit XML con reporter: [['junit', { outputFile: 'results.xml' }]], e formattare quel file è il modo più rapido per capire perché la CI ha contato un test come fallito.
Per fare asserzioni sull’XML nel codice, REST Assured supporta matcher XPath come body(hasXPath("/order/status[text()='SHIPPED']")). Da riga di comando, xmllint --format file.xml formatta un file, e in uno script Python xml.dom.minidom.parseString(text).toprettyxml() fa lo stesso. Per provare espressioni XPath in modo interattivo, usa l’XPath & CSS Selector Tester.
Formattatore XML: domande frequenti
La formattazione modifica i miei dati?
Il testo composto solo da spazi tra i tag viene eliminato e ricreato come rientro, e il testo dentro gli elementi viene ripulito dagli spazi iniziali e finali. Per l’XML orientato ai dati è innocuo, ma con contenuto misto o elementi in cui conta xml:space="preserve" confronta il risultato prima di usarlo.
Le sezioni CDATA e i commenti vengono mantenuti?
Sì. Vengono copiati byte per byte, compreso l’eventuale markup dentro le CDATA. In modalità Minify puoi scegliere di rimuovere i commenti.