Swift naar XML Converter
Plak Swift-structs of een ingevulde instantie. Krijg schone XML terug.
Wat deze tool doet
Als je ooit met de hand XML hebt moeten kloppen dat één-op-één een Swift-struct weerspiegelt — voor een plist, een SOAP-client die praat met een legacy-ERP, of een testfixture voor XMLParser — weet je hoeveel accolades je uiteindelijk tikt. Plak je Swift hier en je krijgt in één keer welgevormd XML terug. Eén struct, een bestand met meerdere structs en enums, of een ingevulde let order = Order(...)-instantie — uitkomst is dezelfde: een compleet XML-document waarin elke property behouden blijft.
Dit is geen dom zoek-en-vervang. De converter snapt hoe Swift daadwerkelijk serializeert — grofweg zoals een Codable-gedreven XMLEncoder het zou doen. Decimal-waarden komen als platte numerieke tekst uit, Date wordt een ISO-8601-string, UUID wordt het standaard 8-4-4-4-12-hex-formaat, en Optional<T> met nil wordt een leeg element in plaats van te verdwijnen. Arrays volgen een consistente container-vorm — elke array wordt een wrapper-element met één kind per item, vernoemd naar het elementtype.
Coding-customisaties worden ook gerespecteerd. Een geneste enum CodingKeys: String, CodingKey hernoemt property-namen in de output, dus orderId kan als OrderId in de XML verschijnen zonder dat je de struct hoeft aan te raken. Geneste structs en enums worden inline uitgeklapt. Plak meerdere types en elk belandt met de vorm intact in de output — de converter volgt dezelfde grote ontwerpdoelen als de Swift API Design Guidelines, dus namen en casing blijven voorspelbaar.
Hoe je 'm gebruikt
Drie stappen. Werkt hetzelfde of je nu een struct van vijf regels plakt of een heel model-bestand.
Plak je Swift (of probeer het voorbeeld)
Gooi je Swift as-is in de linker editor. Een struct, een enum met associated values, een ingevulde let-instantie of een bestand met meerdere types — allemaal prima. Klik op Voorbeeld laden als je eerst een realistisch voorbeeld wilt zien.
Je hoeft import-statements niet te verwijderen, @propertyWrappers niet weg te halen, of de Swift-syntax op te schonen. Laat de code zoals hij in Xcode staat. Plakken, meer niet.
Klik Converteren
Klik op de groene Converteren-knop. De tool leest de Swift, bewaart elk type en elke property, en bouwt de XML in één keer op. Ondertussen draait er kort een laadindicator.
Kopieer de XML
Het rechter paneel vult zich met ingesprongen, welgevormde XML die elke standaardconforme XML-parser (XMLParser, lxml, System.Xml, zoek maar uit) accepteert. Kopieer het rechtstreeks in je plist, SOAP-body of testfixture.
Wanneer dit echt uitkomt
plist-generatie voor iOS / macOS
Neem een Swift-settingsstruct en krijg een Info.plist-achtig XML-document dat je zo in Xcode kunt droppen — geen met de hand getikte <code><key></key></code>-paren, geen whitespace-bugs. Past goed bij Apple's <a href="https://developer.apple.com/documentation/foundation/propertylistserialization" target="_blank" rel="noopener">PropertyListSerialization</a>-API's aan de decoding-kant.
SOAP-clients op Apple-platformen
Een Swift-request-type moet als SOAP de app uit. Struct plakken, XML-body in SoapUI of Postman droppen, contract verifiëren zonder de envelope handmatig te schrijven.
Testfixtures vullen
Zet een ingevulde <code>let order = Order(...)</code> uit een unittest om in een XML-seedbestand voor XCTest-integratietests, mock servers of backend-systemen die nog XML praten.
Docs in sync houden
Genereer XML-voorbeelden voor een README, een interne wiki of XSD-gebaseerde schema-docs rechtstreeks uit je echte Swift-models, zodat de documentatie nooit uit de pas loopt met de code.
Veelgestelde vragen
Kan ik meerdere structs tegelijk plakken?
Ja — plak een heel bestand. Elk top-level-struct of -enum komt erdoorheen met geneste types uitgeklapt en defaultwaarden ingevuld. Er wordt niets stilletjes weggelaten.
Respecteert hij CodingKeys?
Ja. Een geneste enum CodingKeys: String, CodingKey hernoemt property-namen in de XML-output — case orderId = "OrderId" geeft <OrderId> in plaats van <orderId>. Properties die niet in CodingKeys staan, vallen terug op hun Swift-naam. Dit sluit aan bij hoe Codable in de praktijk werkt.
Hoe worden Decimal, Date en Optional afgehandeld?
Decimal komt als platte numerieke tekst naar buiten. Date wordt een ISO-8601-string. UUID wordt een standaard 8-4-4-4-12-hex-string. Optional<T> met nil wordt een leeg element in plaats van te verdwijnen — de vorm blijft consistent voor consumers die tegen een XSD valideren.
En enums met associated values en arrays?
Enums met associated values worden uitgegeven met een discriminator-attribuut dat de case benoemt, plus kind-elementen voor de associated values — genoeg om ze round-trippable te maken. Arrays worden een container-element met één kind per item, vernoemd naar het elementtype. Dictionary<K,V> wordt een container van <Entry><Key/><Value/></Entry>.
Wordt mijn code opgeslagen?
Je code wordt naar de backend gestuurd voor de conversie en wordt niet bewaard — we loggen de payload niet. Zoals altijd met online tools: als de code echt gevoelig is, kijk er even naar voordat je 'm plakt.
Wat als de Swift property wrappers, protocols of computed properties heeft?
Property wrappers worden in de output uitgepakt naar de onderliggende waarde. Protocols definiëren vorm, geen inhoud, dus die produceren niet direct XML — maar conforme types wel. Computed properties worden overgeslagen omdat ze afgeleid zijn en geen state bevatten. Heeft de code syntaxfouten? Fix eerst de voor de hand liggende — de parser is tolerant maar geen helderziende.
Andere tools die je misschien nodig hebt
Swift naar XML is maar één stukje van de puzzel. Deze passen er goed bij: