Keyword | Draft 4 | Draft 6 | Draft 7 | Draft 2019-09 | Draft 2020-12 | Draft 2021-12 | M3 (CLJ) | M3 (CLJS) |
---|---|---|---|---|---|---|---|---|
Core Keywords | ||||||||
$ref | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
$schema | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
$id | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ (breaking tests) | ✔️ (breaking tests) |
$anchor | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ (breaking tests) | ✔️ (breaking tests) |
$recursiveRef | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ (breaking tests) | ✔️ (breaking tests) |
$recursiveAnchor | ❌ | ❌ | ❌ | ✔️ | ❌️ | ❌ | ✔️ (breaking tests) | ✔️ (breaking tests) |
$dynamicRef | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ (breaking tests) | ✔️ (breaking tests) |
$dynamicAnchor | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ (breaking tests) | ✔️ (breaking tests) |
$vocabulary | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ❌ (NYI) | ❌ (NYI) |
title | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
description | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
default | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
examples | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
deprecated | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ |
readOnly | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ |
writeOnly | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ |
$comment | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ |
definitions | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ (breaking test) | ✔️ (breaking test) |
$defs | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ (breaking test) | ✔️ (breaking test) |
Data Types and Validation | ||||||||
type: null | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
type: boolean | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
type: object | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
type: array | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
type: number | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
type: string | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
type: integer | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ (1 issue re 1.0 == 1) |
enum | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
const | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Numeric (number, integer) Keywords | ||||||||
minimum | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
maximum | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
exclusiveMinimum | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
exclusiveMaximum | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
multipleOf | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
String Keywords | ||||||||
format: date-time | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ (breaking tests - leap-second) | ✔️ (breaking tests - leap-second) |
format: date | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: time | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ (breaking tests - leap-second) | ✔️ (breaking tests - leap-second) |
format: email | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: hostname | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: ipv4 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: ipv6 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: uri | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: uri-reference | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: iri | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: iri-reference | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: uri-template | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: json-pointer | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: relative-json-pointer | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: regex | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: idn-email | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: idn-hostname | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ (NYI) | ❌ (NYI) |
format: uuid | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
format: duration | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
pattern | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
minLength | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
maxLength | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
contentMediaType | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
contentEncoding | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
contentSchema | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ |
Object Keywords | ||||||||
properties | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
patternProperties | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
additionalProperties | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
propertyNames | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
propertyDependencies | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
unevaluatedProperties | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ❌ (NYI) | ❌ (NYI) |
minProperties | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
maxProperties | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
required | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
dependencies | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
dependentSchemas | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ |
dependentRequired | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ |
Array Keywords | ||||||||
items | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
additionalItems | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
contains | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
minContains | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
maxContains | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
unevaluatedItems | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ❌ (NYI) | ❌ (NYI) |
prefixItems | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ |
minItems | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
maxItems | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
uniqueItems | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Combining Schemas | ||||||||
allOf | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
anyOf | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
oneOf | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
not | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Conditional Keywords | ||||||||
if | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
then | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
else | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |