Cole o Swift à esquerda e clique em "Converter" — a gente transforma em XMLCole seu código Swift

O que essa ferramenta faz

Se você já teve que escrever XML na mão pra espelhar um struct Swift — pra um plist, um cliente SOAP conversando com um ERP legado ou uma fixture de teste do XMLParser — sabe quantas chaves acaba digitando. Cola o Swift aqui e recebe XML bem formado numa passada só. Um único struct, um arquivo com vários structs e enums, ou uma instância preenchida let order = Order(...) — o resultado é o mesmo: um documento XML completo com cada propriedade preservada.

Não é substituição burra de strings. O conversor entende como o Swift realmente serializa — mais ou menos do jeito que um XMLEncoder baseado em Codable lidaria. Valores Decimal saem como texto numérico puro, Date vira string ISO-8601, UUID vira o formato hex padrão 8-4-4-4-12, e Optional<T> com nil vira um elemento vazio em vez de sumir. Arrays seguem uma forma de container consistente — cada array vira um elemento wrapper com um filho por item, com o nome do tipo do elemento.

As customizações de Coding também são respeitadas. Um enum CodingKeys: String, CodingKey aninhado renomeia as propriedades na saída, então orderId pode aparecer como OrderId no XML sem você encostar no struct. Structs e enums aninhados são expandidos inline. Se você cola vários tipos, cada um cai na saída com o formato intacto — o conversor segue os mesmos objetivos gerais das Swift API Design Guidelines, então nomes e casing continuam previsíveis.

Como usar

Três passos. Funciona igual se você cola um struct de cinco linhas ou um arquivo de modelos inteiro.

1

Cole seu Swift (ou teste o exemplo)

Joga o Swift como está no editor da esquerda. Um struct, um enum com valores associados, uma instância let preenchida ou um arquivo com vários tipos — tudo passa. Clique em Carregar exemplo se quiser ver um caso realista primeiro.

Você não precisa tirar imports, remover @propertyWrappers nem arrumar a sintaxe do Swift. Deixa o código do jeito que ele aparece no Xcode. Só cola.

2

Clique em Converter

Clique no botão verde Converter. A ferramenta lê o Swift, preserva cada tipo e propriedade, e monta o XML numa passada só. Aparece um indicador curto de loading enquanto ela trabalha.

3

Copie o XML

O painel da direita enche de XML indentado e bem formado, que qualquer parser XML que segue os padrões (XMLParser, lxml, System.Xml, escolhe o seu) aceita. Cola direto no seu plist, corpo SOAP ou fixture de teste.

Quando isso realmente salva

Geração de plist em iOS / macOS

Pega um struct de settings em Swift e obtém um documento XML estilo Info.plist que você já solta direto no Xcode — sem pares <code>&lt;key&gt;&lt;/key&gt;</code> digitados na mão, sem bugs de espaço em branco. Combina bem com as APIs <a href="https://developer.apple.com/documentation/foundation/propertylistserialization" target="_blank" rel="noopener">PropertyListSerialization</a> da Apple no lado da decodificação.

Clientes SOAP em plataformas Apple

Um tipo de request Swift precisa sair do app como SOAP. Cola o struct, joga o corpo XML no SoapUI ou Postman, confirma o contrato sem escrever o envelope na unha.

Popular fixtures de teste

Transforma um <code>let order = Order(...)</code> preenchido de um teste unitário num arquivo XML de seed pra testes de integração com XCTest, mock servers, ou sistemas backend que ainda falam XML.

Manter a doc em sincronia

Gera exemplos XML pra um README, um wiki interno ou docs de schema baseadas em XSD direto dos seus modelos Swift reais, pra documentação nunca sair do sincronismo com o código.

Perguntas frequentes

Dá pra colar vários structs de uma vez?

Dá — cole um arquivo inteiro. Cada struct ou enum de nível superior sai com os tipos aninhados expandidos e os valores padrão preenchidos. Nada é descartado no silêncio.

Ele respeita CodingKeys?

Sim. Um enum CodingKeys: String, CodingKey aninhado renomeia as propriedades na saída XML — case orderId = "OrderId" emite <OrderId> em vez de <orderId>. Propriedades não listadas em CodingKeys caem pro nome Swift original. Bate com o jeito que o Codable funciona na prática.

Como lida com Decimal, Date e Optional?

Decimal sai como texto numérico puro. Date vira string ISO-8601. UUID vira string hex padrão 8-4-4-4-12. Optional<T> com nil vira elemento vazio em vez de sumir — aí a forma continua consistente pros consumidores que validam contra um XSD.

E enums com valores associados e arrays?

Enums com valores associados saem com um atributo discriminador que nomeia o case, mais elementos filhos pros valores associados — o suficiente pra fazer round-trip. Arrays viram um elemento container com um filho por item, com o nome do tipo do elemento. Dictionary<K,V> vira um container de <Entry><Key/><Value/></Entry>.

Meu código é armazenado?

Seu código é enviado pro backend pra conversão e não fica persistido — a gente não loga o payload. Como sempre com ferramenta online, se o código for realmente sensível, dá uma olhada antes de colar.

E se o Swift tiver property wrappers, protocolos ou propriedades computadas?

Property wrappers são desempacotados pro valor interno na saída. Protocolos definem formato, não conteúdo, então não produzem XML diretamente — mas tipos que conformam produzem. Propriedades computadas são puladas porque são derivadas, não estado. Se o código tem erros de sintaxe, arruma os óbvios primeiro — o parser é tolerante mas não é adivinho.

Outras ferramentas que podem ajudar

Swift para XML é só uma peça do quebra-cabeça. Estas combinam bem: