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

Hvad værktøjet gør

Hvis du nogensinde har skullet hamre XML sammen i hånden der spejler en Swift-struct — til en plist, til en SOAP-klient der snakker med et legacy-ERP, eller til en testfixture til XMLParser — så ved du hvor mange krøllede parenteser der bliver tastet. Indsæt Swift her og få velformet XML tilbage i én omgang. En enkelt struct, en fil med flere structs og enums, eller en udfyldt let order = Order(...)-instans — resultatet er det samme: et komplet XML-dokument hvor hver property er bevaret.

Det er ikke dum strengerstatning. Konverteren ved hvordan Swift faktisk serialiserer — cirka som en Codable-drevet XMLEncoder ville håndtere det. Decimal-værdier kommer ud som almindelig numerisk tekst, Date bliver en ISO-8601-streng, UUID bliver standardformatet 8-4-4-4-12 i hex, og Optional<T> med nil bliver et tomt element i stedet for at forsvinde. Arrays følger en konsistent container-form — hvert array bliver til et wrapper-element med ét barn per item, navngivet efter elementtypen.

Coding-tilpasninger bliver også respekteret. En nestet enum CodingKeys: String, CodingKey mapper propertynavnene om i outputtet, så orderId kan komme ud som OrderId i XML:en uden at du rører structen. Nestede structs og enums foldes ud inline. Indsæt flere typer, og hver enkelt lander i outputtet med sin form intakt — konverteren følger samme overordnede designmål som Swift API Design Guidelines, så navne og casing forbliver forudsigelige.

Sådan bruger du det

Tre trin. Virker ens uanset om du indsætter en fem-linjers struct eller en hel model-fil.

1

Indsæt din Swift (eller prøv eksemplet)

Smid din Swift ind som den er i venstre editor. En struct, en enum med associated values, en udfyldt let-instans eller en fil med flere typer — det hele duer. Klik på Indlæs eksempel hvis du vil se et realistisk eksempel først.

Du behøver ikke fjerne import-statements, pille @propertyWrappers af eller rydde op i Swift-syntaksen. Lad koden stå som den ser ud i Xcode. Bare indsæt.

2

Tryk Konvertér

Klik på den grønne Konvertér-knap. Værktøjet læser Swift-koden, bevarer hver type og property, og bygger XML-en i ét hug. Imens kører en kort loading-indikator.

3

Kopiér XML-en

Højre panel fyldes med indrykket, velformet XML, som enhver standardkonform XML-parser (XMLParser, lxml, System.Xml, you name it) vil acceptere. Kopiér det direkte ind i din plist, SOAP-body eller testfixture.

Hvornår det faktisk redder dig

plist-generering til iOS / macOS

Tag en Swift-settings-struct og få et Info.plist-agtigt XML-dokument som du kan droppe direkte ind i Xcode — ingen håndtastede <code>&lt;key&gt;&lt;/key&gt;</code>-par, ingen whitespace-bugs. Passer godt med Apples <a href="https://developer.apple.com/documentation/foundation/propertylistserialization" target="_blank" rel="noopener">PropertyListSerialization</a>-API’er på decoding-siden.

SOAP-klienter på Apple-platforme

En Swift-request-type skal ud af appen som SOAP. Indsæt structen, smid XML-bodyen ind i SoapUI eller Postman, verificér kontrakten uden at skrive envelope i hånden.

Seeding af testfixtures

Lav en udfyldt <code>let order = Order(...)</code> fra en unit test om til en XML-seedfil til XCTest-integrationstests, mock-servere eller backend-systemer der stadig snakker XML.

Holde docs synkrone

Generer XML-eksempler til en README, en intern wiki eller XSD-baserede skema-docs direkte fra dine rigtige Swift-modeller, så dokumentationen aldrig driver væk fra koden.

Almindelige spørgsmål

Kan jeg indsætte flere structs ad gangen?

Ja — indsæt en hel fil. Hver top-level-struct eller -enum kommer igennem med nestede typer foldet ud og defaultværdier udfyldt. Ingenting bliver tabt i tavshed.

Respekterer den CodingKeys?

Ja. En nestet enum CodingKeys: String, CodingKey mapper propertynavnene om i XML-outputtet — case orderId = "OrderId" udsender <OrderId> i stedet for <orderId>. Properties der ikke står i CodingKeys, falder tilbage på deres Swift-navn. Det matcher hvordan Codable virker i praksis.

Hvordan håndteres Decimal, Date og Optional?

Decimal kommer ud som almindelig numerisk tekst. Date bliver en ISO-8601-streng. UUID bliver en standard 8-4-4-4-12-hex-streng. Optional<T> med nil bliver et tomt element i stedet for at forsvinde — så formen forbliver konsistent for forbrugere der validerer op mod et XSD.

Og enums med associated values og arrays?

Enums med associated values udsendes med et discriminator-attribut der navngiver caset, plus child-elementer til de associated values — nok til at round-trippe dem. Arrays bliver til et container-element med ét barn per item, navngivet efter elementtypen. Dictionary<K,V> bliver til en container af <Entry><Key/><Value/></Entry>.

Bliver min kode gemt?

Din kode sendes til backend til konverteringen og bliver ikke gemt — vi logger ikke payloaden. Som altid med online-værktøjer: hvis koden er virkelig følsom, så kig den igennem inden du indsætter den.

Hvad hvis Swift-koden har property wrappers, protokoller eller computed properties?

Property wrappers pakkes ud til den underliggende værdi i outputtet. Protokoller definerer form, ikke indhold, så de producerer ikke XML direkte — men typer der conformer, gør. Computed properties springes over fordi de er afledte, ikke state. Hvis koden har syntaksfejl, så fix de indlysende først — parseren er tolerant, men ikke synsk.

Andre værktøjer du måske får brug for

Swift til XML er kun ét stykke af puslespillet. De her passer godt sammen med det: