Open ttdonovan opened 5 years ago
We are expecting that we can get equivalent (or exceed our current XSD) schema data rules with JSON-Schema. JSON seems to be widely used and would appear to have less barrier to entry than XML ( and likely the other formats you mention above).
On the other hand, a quick glance at 'protocol-buffers' looks pretty good.
We are going to create JSON-Schema version of each of our XSDs ( or a document set that will contain essentially the same objects). Stay tuned...
Thank you for the reply. I do agree that JSON schema would be easier to work with as a developer and I'll keep a watch for the other XSDs to JSON-Schema.
As an experiment I started drafting a version of the schema in Google Protocol Buffers. There were areas in the schema that I diverged from v2015 JSON. The protocol buffers might be to much of a divergence or lead to awkward implementation to fit v2015 as defined. I think there are pros and cons for each but something to keep in mind for future iterations.
https://github.com/sheetmusicplus/namm-json/tree/experiment-protos
https://github.com/namm-standards/namm-json/compare/master...sheetmusicplus:experiment-protos
That looks very interesting. Actually pretty intuitive at first glance.
This is a good start to moving away from XML/XSD - justing wondering if there might be value in looking into Protocol Buffers. My concern with JSON is the loss of a schema data structure (no XSD). The use of Protocol Buffers would allow for more code generation options and provide guidance on the data structures. I believe most of the libraries provide options for serializing/deserializing in both binary and JSON. Other data structures to keep in mind are CBOR and BSON. If the goal of having a NAMM standard to transmit data across systems one consideration to keep in mind would be message sizes. If the NAMM Standards wish to use a schema-less data structure I would be interested in exploring options for supportive documentation generation.
References:
Edited: revising my statement about schema-less I see in the JSON a link to http://json-schema.org/