From: Jakob V. <jak...@ni...> - 2009-06-06 14:05:45
|
Hi, The current YAML WD (Version 1.2, 2009-04-26) defines a mapping as an unordered association of unique keys to values (3.2.1., 3.2.1.1, 3.2.1.3). At the same time it is said that YAML can "be viewed as a natural superset of JSON" (1.3). BUT the JSON specification RFC 4627 clearly states that "the names within an object SHOULD be unique" (2.2). Therefore you can create a valid JSON string that is not a valid YAML serialization that can be created a YAML Representation graph from. For instance: { "foo": "bar", "foo": "doz" } Obviously most JSON parsers ignore multiple same names in one object with undefined behaviour (you can ignore all but the first, all but the last, or all but a random entry or you can throw an error or warning). That's fine unless all you deal with is a subset of JSON with unique names in objects. YAML is a suberset of this subset of JSON - but it's not a superset of JSON. Can you please clarify this in the spec? BTW: alking about subsets and subersets - is there an oficial name of the subset of YAML that only allows scalars as mapping keys? The failsafe schema explicitely does not place restrictions on the type of keys. In contrast most use cases and implementations will only allow scalar keys. I bet the situation will be similar to JSON where most people just ignore the "SHOULD"-clause on object keys in the specification - a situation that should be prevented by a good standard specification. Greetings, Jakob Voss |