How to use XML to Crystal
- Paste a representative XML sample, ideally one with all the optional fields filled in.
- Set the name of the root type, and decide whether you want helper code as well or types only.
- Copy the generated Crystal code into your project.
About XML to Crystal
Writing model classes by hand for a big XML payload is dull, and it is where typos creep in. Paste a sample here and the generator works out the structure: which fields exist, which are objects, which are arrays and what type each value has. The output is classes that include JSON::Serializable from the standard library.
XML is first converted to JSON the same way as in our XML to JSON tool: attributes get an @_ prefix and text content next to attributes is called #text. The Crystal types are generated from that result. Properties are declared with the property macro and keys are mapped with the JSON::Field annotation when needed.
Using the generated code
Call Root.from_json(json) to parse and to_json to write.
Optional fields are union types such as String | Nil.