I am working on a project that demands JSON and whose target is multi-party interoperability.
In the XML world, defining the message exchanges in XSD would be the easy win, and there is nothing in this project that would not be handled by any of the versions of XSD.
But this project demands JSON, and the community around the project demands JSON. This list has had frequent discussions of XML vs JSON, some technical, some tending toward flame, so I am bringing this question here.
I am working on a project that demands JSON and whose target is multi-party interoperability.
In the XML world, defining the message exchanges in XSD would be the easy win, and there is nothing in this project that would not be handled by any of the versions of XSD.
But this project demands JSON, and the community around the project demands JSON. This list has had frequent discussions of XML vs JSON, some technical, some tending toward flame, so I am bringing this question here.
What do you see as the most accepted JSON DDL format? Is there any that is well accepted by tooling? By well accepted, I mean one that can be imported into an IDE and then guide the programmer to emitting “correct” JSON, and that can be used to create pre-validation of messages before consumed by the actual target app.
The potential value of such a DDL has long been discussed.
https://www.ietfjournal.org/the-benefits-of-a-json-data-definition-language/
JADN has been suggested, but I see multiple attempts to create a standard JADN definition. JXON would suggest using an XSD and moving messages in and out of JSON as required.
JSON Schema Validation: A Vocabulary for Structural Validation of JSON
https://tools.ietf.org/id/draft-handrews-json-schema-validation-01.html
is still in draft from
JSON Schema and JSON hyper-schema seem not quite done
My concern is that I have participated in writing an XML standard (OBIX 1.0) in the days before XSD was created. All messages were described by example and in prose. Interoperability between implementations was much lower than desired. We finally had to go back, and with great effort (1.1) create schemas (XSD) that were compatible with some of the quirks from the original prose.
In the interests of avoiding a repeat of that experience, what do you recommend?
Thanks
tc