7 ms·
How is it "nice" when any struct member could map to either an attribute or a child element? XML is a markup language. It's in the name even. Trying to use it
by floatboth 5y ago
How is it "nice" when any struct member could map to either an attribute or a child element?
XML is a markup language. It's in the name even. Trying to use it for serialization is weird.
- progval 5y agoYou declare which one it should be in the schema (used to generate the struct and its (de)serialization code) > XML is a markup language. It's in the name even. It can be used for markup, but isn't limited to that.
- Sebb767 5y agoThat's exactly the problem I was going for - feature richness is the enemy of simplicity. The fact that you need to read a schema (and learn one of the schema languages) makes starting out with XML just much harder than JSON.
- progval 5y agoYou implicitly need a schema in JSON too: it's the API documentation. Then, every implementer in a statically typed language needs to translate the JSON format into structures in their own language. And this is impossible to automate, unless the JSON API uses a formally defined schema (eg. OpenAPI or GraphQL schemas), but then we're back to square 1. If you don't care about that (eg. in dynamically typed languages), you can parse XML just like you parse JSON, using something like https://github.com/martinblech/xmltodict https://github.com/martinblech/xmltodict