Kotlin til XML-konverter
Lim inn Kotlin-data classes eller en instans. Få ren XML tilbake.
Hva verktøyet gjør
Hvis du noen gang har måttet skrive en XML-payload for hånd til en Kotlin-data class — til en Android-ressursfil, et SOAP-endepunkt som fortsatt ikke er byttet ut, eller en fixture til en integrasjonstest — vet du hvor slitsomt det er å taste. Lim inn Kotlin her og få tilbake velformet XML i én omgang. En enkelt data class, en fil med flere data classes og sealed classes, eller en utfylt val order = Order(...)-instans — samme resultat: et komplett XML-dokument med hver property bevart.
Det er ingen dum streng-erstatning. Konverteren vet hvordan Kotlin faktisk serialiserer til XML — omtrent slik kotlinx.serialization håndterer det. BigDecimal-verdier kommer ut som vanlig numerisk tekst, Instant og LocalDateTime blir ISO-8601-strenger, nullables med null-verdier blir tomme elementer, og List<T> og Map<K,V> følger en konsistent containerform — hver liste blir et wrapper-element med ett barn per item, navngitt etter elementtypen.
Serialiseringsannoteringer respekteres også. @SerialName("x") på en property døper om elementet i utdataen, @Transient dropper propertyen, og en @SerialName("x") på klassenivå døper om det omsluttende rot-elementet. Sealed class-hierarkier flates ut med en typediskriminator slik at du kan round-trippe dem senere. Limer du inn flere data classes, havner hver av dem i utdataen med nestede typer utvidet og standardverdier fylt inn. Kotlin serialization-dokumentasjonen er verdt en titt hvis du vil ha den grundige versjonen.
Slik bruker du det
Tre steg. Fungerer likt enten du limer inn fem linjer eller en hel modellfil.
Lim inn Kotlin-en din (eller prøv eksempelet)
Slipp Kotlin inn i venstre editor slik det er. En data class, et sealed class-hierarki, en utfylt val-instans, eller en fil med flere klasser — alt går. Klikk på Last inn eksempel hvis du vil se et realistisk tilfelle først.
Du trenger ikke å fjerne import-setninger, klippe bort annoteringer eller rydde i Kotlin-syntaksen. La koden stå som den ser ut i IDE-en din. Bare lim inn.
Trykk på Konverter
Klikk på den grønne Konverter-knappen. Verktøyet leser Kotlin, bevarer hver klasse og property, og bygger XML-en i én omgang. Det vises en kort lasteindikator mens det pågår.
Kopier XML-en
Høyre panel fylles med innrykket, velformet XML som en standardkompatibel XML-parser vil godta. Kopier det rett inn i Android-ressursen din, SOAP-requesten, configfilen eller test-fixturen.
Når det faktisk er nyttig
XML for Android-layout og -ressurser
Du har en Kotlin-modell som mapper til en <a href="https://developer.android.com/guide/topics/resources/providing-resources" target="_blank" rel="noopener">Android-XML-ressurs</a> — en preferences-skjerm, en string-array, et sett egendefinerte attributter. Lim inn klassen, hent ut XML-en, lim inn i res/xml eller res/values.
SOAP-klienter på JVM
En Kotlin-requesttype må ut av appen som SOAP. Lim inn data class-en, slipp XML-bodyen i SoapUI eller Postman, verifiser kontrakten uten å skrive konvolutten for hånd.
Seed til testfixtures
Gjør en utfylt <code>val order = Order(...)</code>-instans fra enhetstesten om til en XML-seedfil for integrasjonstester, mock-servere eller legacy-systemer som fortsatt snakker XML.
Holde docs i synk
Generer XML-eksempler til en README, en API-referanse eller XSD-baserte skjemadocs rett fra dine faktiske Kotlin-modeller, slik at dokumentasjonen matcher koden i stedet for å gli fra den.
Vanlige spørsmål
Kan jeg lime inn flere data classes på én gang?
Ja — lim inn en hel fil. Hver top-level data class eller sealed class kommer gjennom med nestede typer utvidet og standardverdier fylt inn. Ingenting droppes i stillhet.
Respekterer den @SerialName og @Transient?
Ja. @SerialName("x") på en property døper om elementet i utdataen, @SerialName("x") på en klasse døper om det omsluttende rot-elementet, og @Transient fjerner propertyen helt. Det er oppførselen du får fra kotlinx.serialization.
Hvordan håndterer den BigDecimal, Instant og nullables?
BigDecimal kommer ut som vanlig numerisk tekst (ingen BigDecimal("...")-wrapper). Instant og LocalDateTime blir ISO-8601-strenger. Nullables med null-verdi blir tomme elementer i stedet for å fjernes, slik at formen holdes konsistent for konsumenter som validerer mot en XSD.
Hva med sealed classes, lister og maps?
Sealed class-hierarkier flates ut med et typediskriminator-attributt slik at du kan round-trippe dem. List<T> blir et container-element med ett barn per item, navngitt etter elementtypen — en List<OrderItem> items blir <items><OrderItem/><OrderItem/></items>. Map<K,V> blir en container av <Entry><Key/><Value/></Entry>.
Lagres koden min?
Koden din sendes til backenden for konverteringen og lagres ikke — vi logger ikke payloaden. Som alltid med onlineverktøy: er koden virkelig sensitiv, ta en titt på den før du limer inn.
Hva om Kotlin har noe uvanlig — companion objects, extension functions, coroutines?
Companion objects ignoreres for XML-utdataen fordi de ikke er del av instansens tilstand. Extension functions og top-level-funksjoner hoppes over. Har selve koden syntaksfeil, fiks de opplagte først — parseren er tolerant, men ikke tankeleser.
Andre verktøy du kanskje trenger
Kotlin til XML er én brikke. Disse går godt sammen med det: