Description
When accepting JSON documents for submission, it is frequently the case the documents are objects that have at least one property that is required, such as an ID or name field.
As an authoring convenience, JSON Schema should have a "requiredProperties" keyword that is similar to "properties"
in that it defines a sub-schema to apply to the respective properties; but in addition, each of those properties must exist, similar to the "required"
keyword.
This:
{
"requiredProperties": {
"name": { "type": "string", "minLength":1 }
}
}
Would be the same as this:
{
"required": ["name"],
"properties": {
"name": { "type": "string", "minLength":1 }
}
}
Alternatively, this functionality could be built into the "required" keyword (so that "required" accepts an array or an object). This may even be preferable, since older validators will (usually) bail if they see an object where an array is expected:
{
"required": {
"name": { "type": "string", "minLength":1 }
}
}
Examples of confused users: