Klistra in Swift till vänster och klicka på "Konvertera" — vi gör om det till XMLKlistra in Swift-kod

Vad verktyget gör

Har du nånsin fått knåpa ihop XML för hand som speglar en Swift-struct — för en plist, en SOAP-klient som pratar med ett legacy-ERP, eller en testfixture åt XMLParser — så vet du hur många krullparenteser det blir. Klistra in Swift här och få tillbaka välformad XML i en enda sväng. En enskild struct, en fil med flera structs och enums, eller en ifylld let order = Order(...)-instans — resultatet är detsamma: ett komplett XML-dokument där varje property är bevarad.

Det är ingen dum sträng-ersättning. Konverteraren fattar hur Swift faktiskt serialiserar — ungefär som en Codable-driven XMLEncoder skulle hantera det. Decimal-värden kommer ut som vanlig numerisk text, Date blir en ISO-8601-sträng, UUID blir standardformatet 8-4-4-4-12 i hex, och Optional<T> med nil blir ett tomt element istället för att försvinna. Arrays följer en konsekvent container-form — varje array blir ett wrapper-element med ett barn per item, namngivet efter elementtypen.

Coding-anpassningar respekteras också. En nästlad enum CodingKeys: String, CodingKey mappar om propertynamnen i outputen, så orderId kan komma ut som OrderId i XML:en utan att du rör structen. Nästlade structs och enums fälls ut inline. Klistra in flera typer och var och en landar i outputen med formen intakt — konverteraren följer samma stora designmål som Swift API Design Guidelines, så namn och casing förblir förutsägbara.

Så använder du det

Tre steg. Funkar likadant om du klistrar in en femrads-struct eller en hel modellfil.

1

Klistra in din Swift (eller testa exemplet)

Släng in din Swift som den är i vänstra editorn. En struct, en enum med associated values, en ifylld let-instans eller en fil med flera typer — allt går bra. Klicka på Ladda exempel om du vill se ett realistiskt exempel först.

Du behöver inte ta bort import-satser, plocka bort @propertyWrappers eller städa upp Swift-syntaxen. Låt koden vara som den ser ut i Xcode. Bara klistra in.

2

Tryck Konvertera

Klicka på den gröna Konvertera-knappen. Verktyget läser Swift:en, bevarar varje typ och property, och bygger XML:en i en enda sväng. Under tiden snurrar en kort laddningsindikator.

3

Kopiera XML:en

Högra panelen fylls med indenterad, välformad XML som varje standardkompatibel XML-parser (XMLParser, lxml, System.Xml, vad som helst) kommer att acceptera. Kopiera rakt in i din plist, SOAP-body eller testfixture.

När det faktiskt räddar dagen

plist-generering för iOS / macOS

Ta en Swift-settings-struct och få ett Info.plist-liknande XML-dokument som du kan släppa rakt in i Xcode — inga handskrivna <code>&lt;key&gt;&lt;/key&gt;</code>-par, inga whitespace-buggar. Matchar bra med Apples <a href="https://developer.apple.com/documentation/foundation/propertylistserialization" target="_blank" rel="noopener">PropertyListSerialization</a>-API:er på decoding-sidan.

SOAP-klienter på Apple-plattformar

En Swift-request-typ måste ut ur appen som SOAP. Klistra in structen, dumpa XML-bodyn i SoapUI eller Postman, verifiera kontraktet utan att skriva envelope för hand.

Fylla testfixtures

Gör om en ifylld <code>let order = Order(...)</code> från ett unit-test till en XML-seedfil för XCTest-integrationstester, mock-servrar eller backend-system som fortfarande pratar XML.

Hålla docs synkade

Generera XML-exempel till en README, en intern wiki eller XSD-baserade schema-docs direkt från dina riktiga Swift-modeller, så dokumentationen aldrig driver iväg från koden.

Vanliga frågor

Kan jag klistra in flera structs samtidigt?

Ja — klistra in en hel fil. Varje top-level-struct eller -enum kommer igenom med nästlade typer utfällda och defaultvärden ifyllda. Inget trillar bort i tysthet.

Respekterar den CodingKeys?

Ja. En nästlad enum CodingKeys: String, CodingKey mappar om propertynamnen i XML-outputen — case orderId = "OrderId" kommer att skicka ut <OrderId> istället för <orderId>. Properties som inte finns i CodingKeys faller tillbaka på sitt Swift-namn. Det matchar hur Codable funkar i praktiken.

Hur hanteras Decimal, Date och Optional?

Decimal kommer ut som vanlig numerisk text. Date blir en ISO-8601-sträng. UUID blir en standard 8-4-4-4-12-hex-sträng. Optional<T> med nil blir ett tomt element istället för att försvinna — så formen förblir konsekvent för konsumenter som validerar mot en XSD.

Och enums med associated values och arrays?

Enums med associated values skickas ut med ett discriminator-attribut som namnger caset, plus barnelement för de associated values — tillräckligt för att round-trippa dem. Arrays blir ett container-element med ett barn per item, namngivet efter elementtypen. Dictionary<K,V> blir en container av <Entry><Key/><Value/></Entry>.

Sparas min kod?

Din kod skickas till backend för konverteringen och sparas inte — vi loggar inte payloaden. Som alltid med onlineverktyg: om koden verkligen är känslig, kolla igenom den innan du klistrar in.

Vad händer om Swift:en har property wrappers, protokoll eller computed properties?

Property wrappers packas upp till det underliggande värdet i outputen. Protokoll definierar form, inte innehåll, så de producerar inte XML direkt — men typerna som följer dem gör det. Computed properties hoppas över eftersom de är härledda, inte state. Om koden har syntaxfel, fixa de uppenbara först — parsern är förlåtande men inte tankeläsare.

Andra verktyg du kan behöva

Swift till XML är bara en pusselbit. Dessa spelar bra ihop med det: