Indsæt Kotlin til venstre og klik på "Konvertér" — så laver vi det om til XMLIndsæt Kotlin-kode

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.

1

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.

2

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.

3

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: