Colle le Kotlin à gauche et clique sur "Convertir" — on te le transforme en XMLColle ton code Kotlin

À quoi sert cet outil

Si tu as déjà dû rédiger à la main un payload XML pour une data class Kotlin — pour un fichier de ressources Android, un endpoint SOAP qu'on n'a toujours pas remplacé, ou une fixture de test d'intégration — tu sais à quel point c'est fastidieux. Colle ton Kotlin ici et tu récupères du XML bien formé en une passe. Une seule data class, un fichier avec plusieurs data classes et sealed classes, ou une instance peuplée val order = Order(...) — même résultat : un document XML complet avec toutes les propriétés conservées.

Ce n'est pas du remplacement de chaînes bête. Le convertisseur sait comment Kotlin sérialise vraiment vers le XML — à peu près comme kotlinx.serialization le fait. Les BigDecimal sortent en texte numérique brut, les Instant et LocalDateTime deviennent des chaînes ISO-8601, les nullables à null deviennent des éléments vides, et List<T> et Map<K,V> suivent une forme de conteneur cohérente — chaque liste devient un élément wrapper avec un enfant par élément, nommé d'après le type d'élément.

Les annotations de sérialisation sont aussi respectées. @SerialName("x") sur une propriété renomme l'élément dans la sortie, @Transient retire la propriété, et un @SerialName("x") au niveau classe renomme l'élément racine. Les hiérarchies de sealed class sont aplaties avec un discriminateur de type pour que tu puisses faire un round-trip plus tard. Si tu colles plusieurs data classes, chacune arrive dans la sortie avec les types imbriqués développés et les valeurs par défaut remplies. La doc officielle de sérialisation Kotlin vaut le détour si tu veux la version approfondie.

Comment l'utiliser

Trois étapes. Ça marche pareil que tu colles cinq lignes ou un fichier de modèles entier.

1

Colle ton Kotlin (ou essaie l'exemple)

Lâche ton Kotlin dans l'éditeur de gauche tel quel. Une data class, une hiérarchie sealed class, une val instance peuplée, ou un fichier avec plusieurs classes — tout passe. Clique sur Charger un exemple si tu veux voir un cas réaliste d'abord.

Pas besoin de virer les import, d'enlever les annotations, ni de nettoyer la syntaxe Kotlin. Laisse le code comme il apparaît dans ton IDE. Colle, c'est tout.

2

Clique sur Convertir

Appuie sur le bouton vert Convertir. L'outil lit le Kotlin, préserve chaque classe et propriété, et construit le XML en une passe. Un petit indicateur de chargement tourne pendant ce temps.

3

Copie le XML

Le panneau de droite se remplit de XML indenté et bien formé qu'un parser XML conforme au standard acceptera. Copie-le directement dans ta ressource Android, ta requête SOAP, ton fichier de config ou ta fixture de test.

Quand ça dépanne vraiment

XML de layouts et ressources Android

Tu as un modèle Kotlin qui correspond à une <a href="https://developer.android.com/guide/topics/resources/providing-resources" target="_blank" rel="noopener">ressource XML Android</a> — un écran de préférences, un string-array, un set d'attributs custom. Colle la classe, récupère le XML, balance-le dans res/xml ou res/values.

Clients SOAP sur la JVM

Un type de requête Kotlin doit sortir de l'app en SOAP. Colle la data class, balance le corps XML dans SoapUI ou Postman, valide le contrat sans écrire l'enveloppe à la main.

Seed de fixtures de test

Transforme une instance peuplée <code>val order = Order(...)</code> issue de ton test unitaire en fichier XML de seed pour tes tests d'intégration, tes serveurs mock ou les systèmes legacy qui parlent encore XML.

Docs qui restent synchronisées

Génère des exemples XML pour un README, une référence d'API ou des docs de schéma backés par XSD directement depuis tes vrais modèles Kotlin, pour que la doc corresponde au code au lieu de dériver.

Questions fréquentes

Je peux coller plusieurs data classes d'un coup ?

Oui — colle un fichier entier. Chaque data class ou sealed class de premier niveau ressort avec les types imbriqués développés et les valeurs par défaut remplies. Rien n'est silencieusement jeté.

Ça respecte @SerialName et @Transient ?

Oui. @SerialName("x") sur une propriété renomme l'élément dans la sortie, @SerialName("x") sur une classe renomme l'élément racine wrapper, et @Transient retire complètement la propriété. C'est le comportement que te donne kotlinx.serialization.

Comment sont gérés BigDecimal, Instant et les nullables ?

BigDecimal sort en texte numérique brut (pas de wrapper BigDecimal("...")). Instant et LocalDateTime deviennent des chaînes ISO-8601. Les nullables avec valeur null deviennent des éléments vides plutôt que d'être supprimés, pour que la forme reste cohérente pour les consommateurs qui valident contre un XSD.

Et les sealed classes, listes et maps ?

Les hiérarchies de sealed class sont aplaties avec un attribut discriminateur de type pour que tu puisses faire un round-trip. List<T> devient un élément conteneur avec un enfant par élément, nommé d'après le type d'élément — un List<OrderItem> items devient <items><OrderItem/><OrderItem/></items>. Map<K,V> devient un conteneur de <Entry><Key/><Value/></Entry>.

Mon code est-il stocké ?

Ton code est envoyé au backend pour la conversion et n'est pas persisté — on ne log pas le payload. Comme toujours avec les outils en ligne, si le code est vraiment sensible, relis-le avant de coller.

Et si le Kotlin a un truc bizarre — companion objects, fonctions d'extension, coroutines ?

Les companion objects sont ignorés pour la sortie XML puisqu'ils ne font pas partie de l'état d'instance. Les fonctions d'extension et les fonctions top-level sont sautées. Si le code lui-même a des erreurs de syntaxe, corrige d'abord les évidentes — le parser est tolérant, pas devin.

Autres outils qui peuvent te servir

Kotlin vers XML n'est qu'une pièce du puzzle. Ceux-ci s'associent bien :