XML to Elm
Generate Elm classes/structs automatically from an XML document.
What is XML to Elm?
This free online tool turns a sample XML document into a ready-to-use type alias with a JSON decoder for Elm, so you can use this xml to elm decoder generator tool to go straight from raw XML to a typed type alias and decoder without writing the boilerplate yourself. It is built around Elm's actual idiom — a Elm decoder — rather than a generic one-size-fits-all class, and pairs naturally with elm/json's Json.Decode module for real-world (de)serialization. Use it for convert xml to elm type or any time you need xml to elm decoder online, whether you're scaffolding a new Elm project or mapping an existing API response.
Technical Execution
Paste or upload a sample XML document and the tool walks its structure field by field, inferring a concrete Elm type for each value — mapping basic XML types to `String`, `Int`/`Float`, and `Bool` as appropriate. For nested data, it maps nested XML elements to nested type aliases and repeated elements to `List T`, generating the matching decoder structure even though Elm's ecosystem more commonly decodes JSON than XML directly. On the naming side, it preserves the original JSON key names inside the generated `Json.Decode.field "originalKey"` calls, while the Elm record fields themselves follow Elm's camelCase convention. For optional data, fields seen as `null`, or missing from some sample objects, are typed as `Maybe T` and decoded with `Json.Decode.maybe` (or `Json.Decode.Pipeline.optional`), matching Elm's requirement that every possible absence be represented in the type.
Zero Data Storage Guarantee
Everything runs client-side in your browser: the sample XML you paste in — which may contain real field names, endpoint shapes, or structure from a private API or project — is parsed and converted entirely on your device and is never uploaded to any server. Nothing you enter is logged, stored, or transmitted anywhere, so you can safely paste a real payload from an internal or unreleased API to generate an accurate Elm decoder. Closing or refreshing the tab clears everything, since no copy of your data ever left your machine in the first place.
How to Use XML to Elm (Step-by-Step Guide)
- Copy a representative sample of your XML (the more fields and nested objects it includes, the more complete the generated type alias and decoder will be).
- Paste it into the input panel of the XML to Elm tool, or click "Upload" to load it from a xml file.
- Review the auto-detected root name, and rename it if you want the generated Elm decoder to use a specific class or type name instead of the default.
- Click "Generate" to produce the Elm type alias and decoder, which appears instantly in the output panel with syntax highlighting.
- Click "Copy" to copy the generated code to your clipboard, or "Download" to save it as a `.elm` file.
- Paste the result into your Elm project and adjust field names or types if your data has edge cases the sample didn't cover.