Che cosa fa questo strumento
Le chiavi diventano elementi, i valori il loro contenuto:
{ "utente": { "nome": "Ada", "porta": 8080, "attivo": true } }
<utente>
<nome>Ada</nome>
<porta>8080</porta>
<attivo>true</attivo>
</utente>
Un documento con più chiavi alla radice viene avvolto in <root>, perché XML ammette esattamente un elemento radice. Un array alla radice diventa elementi <item> ripetuti al suo interno.
Qui i tipi smettono di esistere
Guarda di nuovo quell’uscita. 8080 e true ora sono testo, e nulla nel documento dice che siano mai stati altro.
Non è un limite della conversione: è ciò che XML è. Un documento XML porta struttura e testo. I tipi vengono da uno schema — XSD, DTD, RELAX NG — che vive fuori dal documento e che questa conversione non può inventare.
La conseguenza pratica va detta senza giri di parole: riconvertire ti darà stringhe. {"port": 8080} torna come {"port": "8080"}, a meno che chi lo legge decida altrimenti — cioè indovini, e sbagli su un numero di versione come 1.10 o un CAP come 01234.
Se ti serve un andata e ritorno che conservi i tipi, XML è la destinazione sbagliata. Se ti serve XML, metti in conto un ritorno con perdita.
Le chiavi sono riparate, non emesse rotte
Un nome di elemento XML non può contenere spazi né iniziare con una cifra:
| chiave | elemento |
|---|---|
user name | <user_name> |
2nd | <_2nd> |
E quando due chiavi vengono riparate nello stesso nome, la seconda diventa user_name_1. Fonderle farebbe sparire un valore in silenzio, che è ciò che questo strumento più si sforza di evitare.
Gli attributi, e l’andata e ritorno
Una chiave scritta "@_id" diventa un attributo, "#text" diventa il testo dell’elemento:
{ "utente": { "@_id": "1", "#text": "Ada" } }
<utente id="1">Ada</utente>
È la stessa convenzione emessa dal verso XML verso JSON: un documento convertito da XML si riconverte nella stessa forma — con i tipi ora stringhe, come sopra.
Privato per progettazione
Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.