allOf : Array<Schema>
allOf
Array<Schema>An instance validates successfully against this keyword if it validates successfully against all schemas defined by this keyword’s value.
| Value |
This keyword must be set to a non-empty array, where each item is a valid JSON Schema
Hint: Use the jsonschema metaschema and jsonschema lint commands to catch keywords set to invalid values
|
|---|---|
| Kind | Applicator |
| Applies To | Any |
| Base Dialect | Draft 7 |
| Changed In | None |
| Introduced In | Draft 4 |
| Vocabulary | Validation |
| Specification | https://json-schema.org/draft-07/draft-handrews-json-schema-validation-01#rfc.section.6.7.1 |
| Metaschema | http://json-schema.org/draft-07/schema# |
| Official Tests | draft7/allOf.json |
| Default |
As if it was set to the (invalid) value:
[]
|
| Annotation | None |
| Affected By | None |
| Affects | None |
| Also See |
|
The allOf keyword restricts
instances to validate against every given subschema. This keyword can be
thought of as a logical
conjunction (AND)
operation, as instances are valid if they satisfy every constraint of every
subschema (the intersection of the constraints).
Best Practice
This keyword typically has a single use case: serving as an
artificial wrapper for $ref keywords, to
avoid references overriding sibling keywords. If this is not the case, prefer
elevating the keywords of every subschema to the outer schema and avoid using
this keyword.
This keyword is equivalent to the && operator found in most programming
languages. For example:
bool valid = A && B && C;
As a reference, the following boolean truth table considers the evaluation result of this keyword given 3 subschemas: A, B, and C.
allOf |
Subschema A | Subschema B | Subschema C |
|---|---|---|---|
| Invalid | Invalid | Invalid | Invalid |
| Invalid | Invalid | Invalid | Valid |
| Invalid | Invalid | Valid | Invalid |
| Invalid | Invalid | Valid | Valid |
| Invalid | Valid | Invalid | Invalid |
| Invalid | Valid | Invalid | Valid |
| Invalid | Valid | Valid | Invalid |
| Valid | Valid | Valid | Valid |
Examples
{
"$schema": "http://json-schema.org/draft-07/schema#",
"allOf": [
{ "$ref": "#/definitions/foo" },
{ "$ref": "#/definitions/bar" }
],
"definitions": {
"foo": { "type": "number" },
"bar": { "type": "integer" }
}
}123453.14"Hello World"