Description
The text of 2020-12's contentSchema says:
The value of this property MUST be a valid JSON schema. It SHOULD be ignored if "contentMediaType" is not present.
In #1288 which I've found, there was some back and forth about what the first sentence there means (which I agree with -- i.e. that the current spec seems to treat this schema as any other subschema, by virtue of omission). But the second sentence still has undefined behavior, because "SHOULD" there isn't clear.
Specifically, this schema (or others like it) when validating the instance 12:
{
"$ref": "#foo",
"contentSchema": {
"$anchor": "foo",
"type": "string"
}
}
either blows up if one follows the SHOULD or else returns invalid if one ignores the SHOULD about contentMediaType
being missing. (FWIW of the implementations Bowtie supports, there appear to be at least 1 implementation with both behaviors, though unclear whether they explicitly intend to do so).
It seems unnecessary to have undefined behavior in this case (one reminiscent of old $ref
), so my personal opinion would be to remove that second sentence (and not intimate that it's ok to ignore it), or to just make it invalid to have contentSchema
present without contentMediaType
(and add a dependentRequired
to the metaschema).
(n.b. #1352 already tweaked the language here coming out of #1288, but the second sentence is still present.)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status