Regras para um XML bem formado
Se o JSON é um objeto com uma única chave, essa chave vira o elemento raiz. Caso contrário, tudo fica dentro de um elemento raiz com o nome que você definir. Um array vira um elemento por item com o nome da sua chave, então "tag": ["a", "b"] vira dois elementos <tag>. Uma lista no nível principal é escrita como elementos <item>.
Nomes XML não podem ter espaços nem começar com dígito, então essas chaves são ajustadas, por exemplo first name vira first_name, e a ferramenta lista cada chave que precisou mudar. Null e texto vazio viram elementos vazios como <note/>. Caracteres especiais são escapados, e caracteres de controle que o XML não aceita são removidos. A saída usa as mesmas regras de @ e #text do XML para JSON, então os dados podem ir e voltar.
Sobre JSON
JSON (JavaScript Object Notation) escreve dados como objetos entre chaves, listas entre colchetes, texto entre aspas duplas, números, true, false e null. Quase toda API e linguagem de programação lê JSON.
Sobre XML
XML (Extensible Markup Language) guarda dados em elementos aninhados com tags de abertura e fechamento, e pode acrescentar atributos a cada elemento. É comum em feeds, notas fiscais eletrônicas, arquivos do Office e serviços SOAP.