Incolla Kotlin a sinistra e clicca su "Converti" — lo trasformiamo in XMLIncolla codice Kotlin

Cosa fa questo strumento

Se ti è mai capitato di dover scrivere a mano un payload XML per una data class Kotlin — per un file di risorse Android, un endpoint SOAP che non hanno ancora sostituito, o una fixture per un test di integrazione — sai quanto è pesante da scrivere. Incolla qui il Kotlin e ricevi XML ben formato in una passata. Una singola data class, un file con più data class e sealed class, o un'istanza popolata val order = Order(...) — stesso risultato: un documento XML completo con ogni proprietà conservata.

Non è una sostituzione stupida di stringhe. Il convertitore sa come Kotlin serializza davvero verso l'XML — più o meno nel modo in cui kotlinx.serialization gestisce le cose. I valori BigDecimal escono come testo numerico semplice, Instant e LocalDateTime diventano stringhe ISO-8601, i nullable con valore null diventano elementi vuoti, e List<T> e Map<K,V> seguono una forma a container coerente — ogni lista diventa un elemento wrapper con un figlio per item, chiamato come il tipo dell'elemento.

Anche le annotazioni di serializzazione vengono rispettate. @SerialName("x") su una proprietà rinomina l'elemento in output, @Transient toglie la proprietà, e un @SerialName("x") a livello di classe rinomina l'elemento radice di wrapping. Le gerarchie sealed class vengono appiattite con un discriminatore di tipo così puoi fare round-trip dopo. Se incolli più data class, ognuna compare nell'output con i tipi annidati espansi e i valori di default compilati. La documentazione ufficiale della serializzazione Kotlin vale la lettura se vuoi la versione approfondita.

Come usarlo

Tre passi. Funziona uguale che tu incolli cinque righe o un intero file di modelli.

1

Incolla il tuo Kotlin (o prova l'esempio)

Lancia il tuo Kotlin nell'editor di sinistra così com'è. Una data class, una gerarchia sealed class, una val istanza popolata, o un file con più classi — va bene tutto. Clicca su Carica esempio se vuoi vedere prima un caso realistico.

Non devi togliere gli import, rimuovere annotazioni, o ripulire la sintassi Kotlin. Lascia il codice così come appare nel tuo IDE. Incolla e basta.

2

Premi Converti

Clicca sul pulsante verde Converti. Lo strumento legge il Kotlin, conserva ogni classe e proprietà, e costruisce l'XML in una passata. Vedrai un breve indicatore di caricamento mentre lavora.

3

Copia l'XML

Il pannello di destra si riempie di XML indentato e ben formato che qualsiasi parser XML conforme allo standard accetta. Copialo direttamente nella tua risorsa Android, richiesta SOAP, file di config o fixture di test.

Quando torna davvero utile

XML di layout e risorse Android

Hai un modello Kotlin che mappa su una <a href="https://developer.android.com/guide/topics/resources/providing-resources" target="_blank" rel="noopener">risorsa XML Android</a> — una schermata di preferenze, un string-array, un set di attributi custom. Incolla la classe, prendi l'XML, incollalo in res/xml o res/values.

Client SOAP sulla JVM

Un tipo di richiesta Kotlin deve uscire dall'app come SOAP. Incolla la data class, butta il body XML in SoapUI o Postman, verifica il contratto senza scrivere l'envelope a mano.

Seed di fixture di test

Trasforma un'istanza popolata <code>val order = Order(...)</code> del tuo unit test in un file XML di seed per test di integrazione, mock server o sistemi legacy che parlano ancora XML.

Tenere le docs allineate

Genera esempi XML per un README, un'API reference o docs di schema basati su XSD direttamente dai tuoi veri modelli Kotlin, così la documentazione combacia con il codice invece di andare a deriva.

Domande frequenti

Posso incollare più data class insieme?

Sì — incolla un intero file. Ogni data class o sealed class di primo livello passa con i tipi annidati espansi e i valori di default compilati. Niente viene scartato in silenzio.

Rispetta @SerialName e @Transient?

Sì. @SerialName("x") su una proprietà rinomina l'elemento in output, @SerialName("x") su una classe rinomina l'elemento radice wrapper, e @Transient toglie la proprietà del tutto. È il comportamento che ti dà kotlinx.serialization.

Come gestisce BigDecimal, Instant e nullable?

BigDecimal esce come testo numerico semplice (senza wrapper BigDecimal("...")). Instant e LocalDateTime diventano stringhe ISO-8601. I nullable con valore null diventano elementi vuoti invece di essere rimossi, così la forma resta coerente per chi valida contro un XSD.

E per sealed class, liste e map?

Le gerarchie sealed class vengono appiattite con un attributo discriminatore di tipo così puoi fare round-trip. List<T> diventa un elemento container con un figlio per item, chiamato come il tipo dell'elemento — una List<OrderItem> items diventa <items><OrderItem/><OrderItem/></items>. Map<K,V> diventa un container di <Entry><Key/><Value/></Entry>.

Il mio codice viene salvato?

Il codice viene inviato al backend per la conversione e non viene persistito — non logghiamo il payload. Come sempre con gli strumenti online, se il codice è davvero sensibile, dagli un'occhiata prima di incollarlo.

E se il Kotlin ha qualcosa di insolito — companion object, extension function, coroutine?

I companion object vengono ignorati per l'output XML visto che non fanno parte dello stato dell'istanza. Le extension function e le funzioni top-level vengono saltate. Se il codice stesso ha errori di sintassi, aggiusta prima quelli ovvi — il parser è tollerante ma non fa telepatia.

Altri strumenti che possono servirti

Kotlin in XML è solo un pezzo del puzzle. Questi si abbinano bene: