Lim inn Dart til venstre og klikk på "Konverter" — vi gjør det om til XMLLim inn Dart-kode

Hva dette verktøyet gjør

Hvis du noen gang har måttet forme en XML-payload slik at den matcher en Dart-modell — for en Flutter-app som snakker med et gammelt SOAP-endepunkt, en XML-konfig i Android-stil, eller en RSS-feedleser — vet du hvor mye boilerplate det er. Lim inn Dart-koden her, så gir verktøyet deg velformet XML tilbake i én runde. En klasse med final-felter, en hel modellfil, eller en ferdig utfylt instans — samme resultat: et komplett XML-dokument der hvert felt er bevart.

Dette er ikke naiv string-erstatning. Konverteren leser ekte Dart: navngitte required-parametere blir elementer i deklarasjonsrekkefølge, final-felter oppfører seg akkurat som ikke-final, DateTime-verdier rendres som ISO-8601-strenger, Duration bruker ISO-8601-varighetsformat, num, int og double beholder sin numeriske form, null (fra nullable-typer som String?) blir et tomt element i stedet for å droppes, og List<T> blir et container-element med ett barn per post — akkurat slik XmlBuilder i pakken xml ville produsert.

Klassestrukturen bevares. Hver topp-nivå-klasse blir et rot-element oppkalt etter klassen, hvert felt blir et barn-element, nestede klasser pakkes ut inline, og Map<K, V> blir til <entry><key/><value/></entry>-par. Annotasjoner som @JsonKey(name: "x") fra json_annotation respekteres som hint for å gi elementer nytt navn. Lim inn en Flutter-modell, en data class i freezed-stil, eller en vanlig Dart-POJO — XML-en ser ut slik et håndskrevet XmlBuilder-kall ville laget den, bare uten seremonien.

Slik bruker du det

Tre steg. Samme flyt enten du limer inn én enkelt modell eller en hel <code>lib/models</code>-mappe.

1

Lim inn Dart-en din (eller prøv eksempelet)

Slipp Dart-en din rett inn i editoren til venstre som den er. En vanlig klasse, en data class med navngitt konstruktør, flere klasser, eller en utfylt instans — alt går. Klikk på Last inn eksempel for å se et realistisk Order-eksempel først.

Du trenger ikke fjerne importer, fjerne part-direktiver eller slette annotasjoner. La koden stå akkurat som i IDE-en din. Bare lim inn.

2

Trykk Konverter

Klikk på den grønne Konverter-knappen. Verktøyet leser Dart-en, beholder hver klasse og hvert felt, og bygger XML i én runde. En kort lasteindikator vises mens det jobber.

3

Kopier XML-en

Panelet til høyre fylles med innrykket, velformet XML som enhver standard-kompatibel parser godtar. Slipp det inn i en SOAP-forespørsel, en Flutter-asset-fil, en Android-lignende config, eller en enhetstest-fixture.

Når dette faktisk kommer godt med

Flutter-apper som snakker med SOAP-tjenester

Flutter-appen din må kalle et gammelt SOAP-endepunkt, og request-body må matche en Dart-modell. Lim inn modellen, ta XML-en, gi den til <code>http.post</code> eller pakken <a href="https://pub.dev/packages/xml" target="_blank" rel="noopener">xml</a>.

RSS- og Atom-feed-generatorer

Bygger du en podkast- eller nyhetsapp som publiserer RSS? Lim inn episode-modellen, få den XML-formen du trenger, og pakk den så inn med feed-envelopen — ingen håndtelling av <code>&lt;item&gt;</code>-barn.

Native Android/iOS XML-configer

Må du lage en preferences-XML i Android-stil eller en plist-lignende iOS-struktur fra en Dart-modell som brukes i platform channels? Lim inn klassen og få en mal du bare trenger å finpusse på.

Test-fixturer for flutter_test

Gjør en utfylt modell om til en XML-fixture-fil for <code>flutter_test</code>, golden tests for widgets, eller mockede HTTP-svar — mye raskere enn å skrive fixture-strenger for hånd.

Vanlige spørsmål

Kan jeg lime inn flere klasser på én gang?

Ja — lim inn en hel models.dart-fil eller en komplett modellmappe. Hver topp-nivå-klasse kommer gjennom med nestede klasser pakket ut og felter fra foreldreklasser inkludert. Miksiner behandles som at de bidrar med feltene sine. Ingenting forsvinner i stillhet.

Virker det med freezed eller json_serializable data classes?

Ja. Uforanderlige klasser i freezed-stil og modeller annotert med json_serializable behandles som vanlige Dart-klasser — feltene kommer gjennom, og @JsonKey(name: "x") respekteres som et hint for å gi element nytt navn. Du trenger ikke kjøre build_runner først eller lime inn den genererte .g.dart-filen.

Hvordan håndteres DateTime, Duration, null og num?

DateTime rendres som en ISO-8601-streng (2026-04-21T10:15:00.000Z). Duration rendres som en ISO-8601-varighet (PT2H30M) eller fallback HH:mm:ss. Nullable-typer med en null-verdi blir tomme elementer (<field/>) i stedet for å utelates, så XML-formen holder seg konsistent. num, int og double serialiseres alle som vanlig desimaltekst.

Hva med List, Map og nestede klasser?

List<T> blir et container-element med ett barn per post, oppkalt etter typen — en List<OrderItem> items blir <items><OrderItem/><OrderItem/></items>. Map<K, V> blir til <entry><key/><value/></entry>-par. Nestede klasser pakkes ut inline, akkurat slik XmlBuilder i pakken xml lager nestede elementer.

Blir koden min lagret?

Dart-en din sendes til backend for konvertering og lagres ikke — vi logger ikke payloaden. Som alltid med nettverktøy: hvis koden inneholder virkelig sensitive literaler (API-nøkler, tokens), rens eller mock dem før du limer inn.

Hva om klassen bruker dynamic- eller Object?-felter?

Felter typet som dynamic eller Object? serialiseres som strengtekst basert på den tildelte literal-verdien, siden den faktiske formen først er kjent ved kjøretid. Vil du ha sterkere XML-utdata, snevrer du inn typen (String, int, en konkret klasse) — konverteren fanger opp strukturen automatisk.

Andre verktøy du kan trenge

Dart til XML er bare én brikke. Disse passer godt sammen med det: