Kotlin til XML-konverter
Indsæt Kotlin-data classes eller en instans. Få ren XML tilbage.
Hvad værktøjet gør
Hvis du nogensinde har skullet skrive en XML-payload i hånden til en Kotlin-data class — til en Android-ressourcefil, et SOAP-endpoint der stadig ikke er blevet erstattet, eller en fixture til en integrationstest — så ved du, hvor trættende det er at taste. Indsæt Kotlin her og få velformet XML tilbage i én gang. En enkelt data class, en fil med flere data classes og sealed classes, eller en udfyldt val order = Order(...)-instans — samme resultat: et komplet XML-dokument med hver property bevaret.
Det er ingen dum streng-erstatning. Konverteren ved, hvordan Kotlin faktisk serialiserer til XML — stort set som kotlinx.serialization håndterer det. BigDecimal-værdier kommer ud som almindelig numerisk tekst, Instant og LocalDateTime bliver ISO-8601-strenge, nullables med null-værdier bliver tomme elementer, og List<T> og Map<K,V> følger en konsistent containerform — hver liste bliver et wrapper-element med ét barn per item, navngivet efter elementtypen.
Serialiseringsannotationer respekteres også. @SerialName("x") på en property omdøber elementet i outputtet, @Transient dropper propertyen, og en @SerialName("x") på klasseniveau omdøber det omsluttende rod-element. Sealed class-hierarkier flades ud med en typediskriminator, så du kan round-trippe dem senere. Indsætter du flere data classes, lander hver enkelt i outputtet med nestede typer udfoldet og standardværdier udfyldt. Kotlin serialization-dokumentationen er værd at læse, hvis du vil have den dybe version.
Sådan bruger du det
Tre trin. Virker ens, om du indsætter fem linjer eller en hel modelfil.
Indsæt din Kotlin (eller prøv eksemplet)
Smid din Kotlin ind i venstre editor, som den er. En data class, et sealed class-hierarki, en udfyldt val-instans eller en fil med flere klasser — alt duer. Klik på Indlæs eksempel, hvis du vil se et realistisk tilfælde først.
Du behøver ikke at fjerne import-sætninger, skrælle annotationer af eller rydde op i Kotlin-syntaksen. Lad koden stå, som den ser ud i din IDE. Bare indsæt.
Tryk på Konvertér
Klik på den grønne Konvertér-knap. Værktøjet læser Kotlin, bevarer hver klasse og property og bygger XML i én gang. Du ser en kort loading-indikator imens.
Kopiér XML-en
Højre panel fyldes med indrykket, velformet XML, som en standardkonform XML-parser vil acceptere. Kopiér det direkte ind i din Android-ressource, SOAP-request, configfil eller test-fixture.
Hvornår det faktisk er smart
Android layout- og ressource-XML
Du har en Kotlin-model, der mapper til en <a href="https://developer.android.com/guide/topics/resources/providing-resources" target="_blank" rel="noopener">Android-XML-ressource</a> — en preferences-skærm, et string-array, et sæt custom attributes. Indsæt klassen, få XML-en, indsæt i res/xml eller res/values.
SOAP-klienter på JVM
En Kotlin-requesttype skal ud af appen som SOAP. Indsæt data class, smid XML-bodyen i SoapUI eller Postman, verificér kontrakten uden at skrive konvolutten i hånden.
Seeding af test-fixtures
Forvandl en udfyldt <code>val order = Order(...)</code>-instans fra din unittest til en XML-seedfil til integrationstests, mock-servere eller legacy-systemer, der stadig taler XML.
Hold docs i synk
Generér XML-eksempler til et README, en API-reference eller XSD-baserede skemadocs direkte fra dine faktiske Kotlin-modeller, så dokumentationen matcher koden i stedet for at drive fra den.
Almindelige spørgsmål
Kan jeg indsætte flere data classes på én gang?
Ja — indsæt en hel fil. Hver top-level data class eller sealed class kommer igennem med nestede typer udfoldet og standardværdier udfyldt. Intet droppes i stilhed.
Respekterer den @SerialName og @Transient?
Ja. @SerialName("x") på en property omdøber elementet i outputtet, @SerialName("x") på en klasse omdøber det omsluttende rod-element, og @Transient fjerner propertyen helt. Det er opførslen, du får fra kotlinx.serialization.
Hvordan håndterer den BigDecimal, Instant og nullables?
BigDecimal kommer ud som almindelig numerisk tekst (ingen BigDecimal("...")-wrapper). Instant og LocalDateTime bliver ISO-8601-strenge. Nullables med null-værdi bliver tomme elementer i stedet for at blive fjernet, så formen holdes konsistent for konsumenter, der validerer mod en XSD.
Hvad med sealed classes, lister og maps?
Sealed class-hierarkier flades ud med en typediskriminator-attribut, så du kan round-trippe dem. List<T> bliver et container-element med ét barn per item, navngivet efter elementtypen — en List<OrderItem> items bliver til <items><OrderItem/><OrderItem/></items>. Map<K,V> bliver til en container af <Entry><Key/><Value/></Entry>.
Bliver min kode gemt?
Din kode sendes til backenden til konverteringen og gemmes ikke — vi logger ikke payloaden. Som altid med online-værktøjer: er koden virkelig følsom, så gennemlæs den, før du indsætter.
Hvad hvis Kotlin indeholder noget usædvanligt — companion objects, extension functions, coroutines?
Companion objects ignoreres til XML-outputtet, fordi de ikke er del af instansens tilstand. Extension functions og top-level-funktioner springes over. Har selve koden syntaksfejl, så fix de åbenlyse først — parseren er tilgivende, men ikke synsk.
Andre værktøjer du kan få brug for
Kotlin til XML er én brik. Disse passer godt til det: