diff --git a/README.md b/README.md
index 93751e7..993db75 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
This is a C++ library for validating JSON documents based on a
[JSON Schema](http://json-schema.org/) which itself should validate with
-[draft-7 of JSON Schema Validation](http://json-schema.org/schema).
+[draft 2020-12 of JSON Schema Validation](http://json-schema.org/schema).
First a disclaimer: *It is work in progress and
contributions or hints or discussions are welcome.*
@@ -24,7 +24,7 @@ Although significant changes have been done for the 2nd version
(a complete rewrite) the API is compatible with the 1.0.0 release. Except for
the namespace which is now `nlohmann::json_schema`.
-Version **2** supports JSON schema draft 7, whereas 1 was supporting draft 4
+Version **2** supports JSON schema draft 2020-12, whereas 1 was supporting draft 4
only. Please update your schemas.
The primary change in 2 is the way a schema is used. While in version 1 the schema was
@@ -170,7 +170,7 @@ using nlohmann::json_schema::json_validator;
// The schema is defined based upon a string literal
static json person_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"title": "A person",
"properties": {
"name": {
@@ -314,7 +314,7 @@ using nlohmann::json_schema::json_validator;
static const json rectangle_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"title": "A rectangle",
"properties": {
"width": {
@@ -353,7 +353,7 @@ int main()
The example above will output the specified default values `{"height":10,"width":20}` to stdout.
-> Note that the default value specified in a `$ref` may be overridden by the current instance location. Also note that this behavior will break draft-7, but it is compliant to newer drafts (e.g. `2019-09` or `2020-12`).
+> Note that the default value specified in a `$ref` may be overridden by the current instance location. Also note that this behavior will break draft 2020-12, but it is compliant to newer drafts (e.g. `2019-09` or `2020-12`).
# Contributing
diff --git a/example/format.cpp b/example/format.cpp
index 40e6445..daf9b7c 100644
--- a/example/format.cpp
+++ b/example/format.cpp
@@ -8,7 +8,7 @@ using nlohmann::json_schema::json_validator;
// The schema is defined based upon a string literal
static json uri_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"myUri": {
diff --git a/example/readme.cpp b/example/readme.cpp
index 45f4d35..9acc59b 100644
--- a/example/readme.cpp
+++ b/example/readme.cpp
@@ -9,7 +9,7 @@ using nlohmann::json_schema::json_validator;
// The schema is defined based upon a string literal
static json person_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"title": "A person",
"properties": {
"name": {
diff --git a/schema b/schema
index 5bee90e..d5e2d31 100644
--- a/schema
+++ b/schema
@@ -1,168 +1,58 @@
{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "http://json-schema.org/draft-07/schema#",
- "title": "Core schema meta-schema",
- "definitions": {
- "schemaArray": {
- "type": "array",
- "minItems": 1,
- "items": { "$ref": "#" }
- },
- "nonNegativeInteger": {
- "type": "integer",
- "minimum": 0
- },
- "nonNegativeIntegerDefault0": {
- "allOf": [
- { "$ref": "#/definitions/nonNegativeInteger" },
- { "default": 0 }
- ]
- },
- "simpleTypes": {
- "enum": [
- "array",
- "boolean",
- "integer",
- "null",
- "number",
- "object",
- "string"
- ]
- },
- "stringArray": {
- "type": "array",
- "items": { "type": "string" },
- "uniqueItems": true,
- "default": []
- }
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://json-schema.org/draft/2020-12/schema",
+ "$vocabulary": {
+ "https://json-schema.org/draft/2020-12/vocab/core": true,
+ "https://json-schema.org/draft/2020-12/vocab/applicator": true,
+ "https://json-schema.org/draft/2020-12/vocab/unevaluated": true,
+ "https://json-schema.org/draft/2020-12/vocab/validation": true,
+ "https://json-schema.org/draft/2020-12/vocab/meta-data": true,
+ "https://json-schema.org/draft/2020-12/vocab/format-annotation": true,
+ "https://json-schema.org/draft/2020-12/vocab/content": true
},
+ "$dynamicAnchor": "meta",
+
+ "title": "Core and Validation specifications meta-schema",
+ "allOf": [
+ {"$ref": "meta/core"},
+ {"$ref": "meta/applicator"},
+ {"$ref": "meta/unevaluated"},
+ {"$ref": "meta/validation"},
+ {"$ref": "meta/meta-data"},
+ {"$ref": "meta/format-annotation"},
+ {"$ref": "meta/content"}
+ ],
"type": ["object", "boolean"],
+ "$comment": "This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",
"properties": {
- "$id": {
- "type": "string",
- "format": "uri-reference"
- },
- "$schema": {
- "type": "string",
- "format": "uri"
- },
- "$ref": {
- "type": "string",
- "format": "uri-reference"
- },
- "$comment": {
- "type": "string"
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "default": true,
- "readOnly": {
- "type": "boolean",
- "default": false
- },
- "examples": {
- "type": "array",
- "items": true
- },
- "multipleOf": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "maximum": {
- "type": "number"
- },
- "exclusiveMaximum": {
- "type": "number"
- },
- "minimum": {
- "type": "number"
- },
- "exclusiveMinimum": {
- "type": "number"
- },
- "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
- "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "pattern": {
- "type": "string",
- "format": "regex"
- },
- "additionalItems": { "$ref": "#" },
- "items": {
- "anyOf": [
- { "$ref": "#" },
- { "$ref": "#/definitions/schemaArray" }
- ],
- "default": true
- },
- "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
- "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "uniqueItems": {
- "type": "boolean",
- "default": false
- },
- "contains": { "$ref": "#" },
- "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
- "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "required": { "$ref": "#/definitions/stringArray" },
- "additionalProperties": { "$ref": "#" },
"definitions": {
+ "$comment": "\"definitions\" has been replaced by \"$defs\".",
"type": "object",
- "additionalProperties": { "$ref": "#" },
- "default": {}
- },
- "properties": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "default": {}
- },
- "patternProperties": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "propertyNames": { "format": "regex" },
+ "additionalProperties": { "$dynamicRef": "#meta" },
+ "deprecated": true,
"default": {}
},
"dependencies": {
+ "$comment": "\"dependencies\" has been split and replaced by \"dependentSchemas\" and \"dependentRequired\" in order to serve their differing semantics.",
"type": "object",
"additionalProperties": {
"anyOf": [
- { "$ref": "#" },
- { "$ref": "#/definitions/stringArray" }
+ { "$dynamicRef": "#meta" },
+ { "$ref": "meta/validation#/$defs/stringArray" }
]
- }
+ },
+ "deprecated": true,
+ "default": {}
},
- "propertyNames": { "$ref": "#" },
- "const": true,
- "enum": {
- "type": "array",
- "items": true,
- "minItems": 1,
- "uniqueItems": true
+ "$recursiveAnchor": {
+ "$comment": "\"$recursiveAnchor\" has been replaced by \"$dynamicAnchor\".",
+ "$ref": "meta/core#/$defs/anchorString",
+ "deprecated": true
},
- "type": {
- "anyOf": [
- { "$ref": "#/definitions/simpleTypes" },
- {
- "type": "array",
- "items": { "$ref": "#/definitions/simpleTypes" },
- "minItems": 1,
- "uniqueItems": true
- }
- ]
- },
- "format": { "type": "string" },
- "contentMediaType": { "type": "string" },
- "contentEncoding": { "type": "string" },
- "if": {"$ref": "#"},
- "then": {"$ref": "#"},
- "else": {"$ref": "#"},
- "allOf": { "$ref": "#/definitions/schemaArray" },
- "anyOf": { "$ref": "#/definitions/schemaArray" },
- "oneOf": { "$ref": "#/definitions/schemaArray" },
- "not": { "$ref": "#" }
- },
- "default": true
+ "$recursiveRef": {
+ "$comment": "\"$recursiveRef\" has been replaced by \"$dynamicRef\".",
+ "$ref": "meta/core#/$defs/uriReferenceString",
+ "deprecated": true
+ }
+ }
}
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7848554..3affae3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,6 +1,6 @@
target_sources(nlohmann_json_schema_validator PRIVATE
smtp-address-validator.cpp
- json-schema-draft7.json.cpp
+ json-schema-draft_2020-12.json.cpp
json-uri.cpp
json-validator.cpp
json-patch.cpp
diff --git a/src/json-patch.cpp b/src/json-patch.cpp
index 3203543..7916691 100644
--- a/src/json-patch.cpp
+++ b/src/json-patch.cpp
@@ -9,7 +9,7 @@ namespace
// with fixes
const nlohmann::json patch_schema = R"patch({
"title": "JSON schema for JSONPatch files",
- "$schema": "http://json-schema.org/draft-04/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
diff --git a/src/json-schema-draft7.json.cpp b/src/json-schema-draft7.json.cpp
deleted file mode 100644
index b680e2c..0000000
--- a/src/json-schema-draft7.json.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * JSON schema validator for JSON for modern C++
- *
- * Copyright (c) 2016-2019 Patrick Boettcher
.
- *
- * SPDX-License-Identifier: MIT
- *
- */
-#include
-
-namespace nlohmann
-{
-namespace json_schema
-{
-
-json draft7_schema_builtin = R"( {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "http://json-schema.org/draft-07/schema#",
- "title": "Core schema meta-schema",
- "definitions": {
- "schemaArray": {
- "type": "array",
- "minItems": 1,
- "items": { "$ref": "#" }
- },
- "nonNegativeInteger": {
- "type": "integer",
- "minimum": 0
- },
- "nonNegativeIntegerDefault0": {
- "allOf": [
- { "$ref": "#/definitions/nonNegativeInteger" },
- { "default": 0 }
- ]
- },
- "simpleTypes": {
- "enum": [
- "array",
- "boolean",
- "integer",
- "null",
- "number",
- "object",
- "string"
- ]
- },
- "stringArray": {
- "type": "array",
- "items": { "type": "string" },
- "uniqueItems": true,
- "default": []
- }
- },
- "type": ["object", "boolean"],
- "properties": {
- "$id": {
- "type": "string",
- "format": "uri-reference"
- },
- "$schema": {
- "type": "string",
- "format": "uri"
- },
- "$ref": {
- "type": "string",
- "format": "uri-reference"
- },
- "$comment": {
- "type": "string"
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "default": true,
- "readOnly": {
- "type": "boolean",
- "default": false
- },
- "examples": {
- "type": "array",
- "items": true
- },
- "multipleOf": {
- "type": "number",
- "exclusiveMinimum": 0
- },
- "maximum": {
- "type": "number"
- },
- "exclusiveMaximum": {
- "type": "number"
- },
- "minimum": {
- "type": "number"
- },
- "exclusiveMinimum": {
- "type": "number"
- },
- "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
- "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "pattern": {
- "type": "string",
- "format": "regex"
- },
- "additionalItems": { "$ref": "#" },
- "items": {
- "anyOf": [
- { "$ref": "#" },
- { "$ref": "#/definitions/schemaArray" }
- ],
- "default": true
- },
- "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
- "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "uniqueItems": {
- "type": "boolean",
- "default": false
- },
- "contains": { "$ref": "#" },
- "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
- "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
- "required": { "$ref": "#/definitions/stringArray" },
- "additionalProperties": { "$ref": "#" },
- "definitions": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "default": {}
- },
- "properties": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "default": {}
- },
- "patternProperties": {
- "type": "object",
- "additionalProperties": { "$ref": "#" },
- "propertyNames": { "format": "regex" },
- "default": {}
- },
- "dependencies": {
- "type": "object",
- "additionalProperties": {
- "anyOf": [
- { "$ref": "#" },
- { "$ref": "#/definitions/stringArray" }
- ]
- }
- },
- "propertyNames": { "$ref": "#" },
- "const": true,
- "enum": {
- "type": "array",
- "items": true,
- "minItems": 1,
- "uniqueItems": true
- },
- "type": {
- "anyOf": [
- { "$ref": "#/definitions/simpleTypes" },
- {
- "type": "array",
- "items": { "$ref": "#/definitions/simpleTypes" },
- "minItems": 1,
- "uniqueItems": true
- }
- ]
- },
- "format": { "type": "string" },
- "contentMediaType": { "type": "string" },
- "contentEncoding": { "type": "string" },
- "if": { "$ref": "#" },
- "then": { "$ref": "#" },
- "else": { "$ref": "#" },
- "allOf": { "$ref": "#/definitions/schemaArray" },
- "anyOf": { "$ref": "#/definitions/schemaArray" },
- "oneOf": { "$ref": "#/definitions/schemaArray" },
- "not": { "$ref": "#" }
- },
- "default": true
-} )"_json;
-}
-} // namespace nlohmann
diff --git a/src/json-schema-draft_2020-12.json.cpp b/src/json-schema-draft_2020-12.json.cpp
new file mode 100644
index 0000000..cac41c8
--- /dev/null
+++ b/src/json-schema-draft_2020-12.json.cpp
@@ -0,0 +1,75 @@
+/*
+ * JSON schema validator for JSON for modern C++
+ *
+ * Copyright (c) 2016-2019 Patrick Boettcher .
+ *
+ * SPDX-License-Identifier: MIT
+ *
+ */
+#include
+
+namespace nlohmann
+{
+namespace json_schema
+{
+
+json draft_2020_12_schema_builtin = R"( {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://json-schema.org/draft/2020-12/schema",
+ "$vocabulary": {
+ "https://json-schema.org/draft/2020-12/vocab/core": true,
+ "https://json-schema.org/draft/2020-12/vocab/applicator": true,
+ "https://json-schema.org/draft/2020-12/vocab/unevaluated": true,
+ "https://json-schema.org/draft/2020-12/vocab/validation": true,
+ "https://json-schema.org/draft/2020-12/vocab/meta-data": true,
+ "https://json-schema.org/draft/2020-12/vocab/format-annotation": true,
+ "https://json-schema.org/draft/2020-12/vocab/content": true
+ },
+ "$dynamicAnchor": "meta",
+
+ "title": "Core and Validation specifications meta-schema",
+ "allOf": [
+ {"$ref": "meta/core"},
+ {"$ref": "meta/applicator"},
+ {"$ref": "meta/unevaluated"},
+ {"$ref": "meta/validation"},
+ {"$ref": "meta/meta-data"},
+ {"$ref": "meta/format-annotation"},
+ {"$ref": "meta/content"}
+ ],
+ "type": ["object", "boolean"],
+ "$comment": "This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",
+ "properties": {
+ "definitions": {
+ "$comment": "\"definitions\" has been replaced by \"$defs\".",
+ "type": "object",
+ "additionalProperties": { "$dynamicRef": "#meta" },
+ "deprecated": true,
+ "default": {}
+ },
+ "dependencies": {
+ "$comment": "\"dependencies\" has been split and replaced by \"dependentSchemas\" and \"dependentRequired\" in order to serve their differing semantics.",
+ "type": "object",
+ "additionalProperties": {
+ "anyOf": [
+ { "$dynamicRef": "#meta" },
+ { "$ref": "meta/validation#/$defs/stringArray" }
+ ]
+ },
+ "deprecated": true,
+ "default": {}
+ },
+ "$recursiveAnchor": {
+ "$comment": "\"$recursiveAnchor\" has been replaced by \"$dynamicAnchor\".",
+ "$ref": "meta/core#/$defs/anchorString",
+ "deprecated": true
+ },
+ "$recursiveRef": {
+ "$comment": "\"$recursiveRef\" has been replaced by \"$dynamicRef\".",
+ "$ref": "meta/core#/$defs/uriReferenceString",
+ "deprecated": true
+ }
+ }
+} )"_json;
+}
+} // namespace nlohmann
diff --git a/src/json-validator.cpp b/src/json-validator.cpp
index 62ce97c..d3e54e5 100644
--- a/src/json-validator.cpp
+++ b/src/json-validator.cpp
@@ -1409,7 +1409,7 @@ std::shared_ptr schema::make(json &schema,
schema.erase(attr);
- // special case where we break draft-7 and allow overriding of properties when a $ref is used
+ // special case where we break draft-7 and allow overriding of properties when a $ref is used <<-- might be out-of-date now that 2020-12 is used
attr = schema.find("default");
if (attr != schema.end()) {
// copy the referenced schema depending on the underlying type and modify the default value
diff --git a/src/nlohmann/json-schema.hpp b/src/nlohmann/json-schema.hpp
index 07befd3..1eac0ff 100644
--- a/src/nlohmann/json-schema.hpp
+++ b/src/nlohmann/json-schema.hpp
@@ -37,7 +37,7 @@ namespace nlohmann
// A class representing a JSON-URI for schemas derived from
// section 8 of JSON Schema: A Media Type for Describing JSON Documents
-// draft-wright-json-schema-00
+// draft-wright-json-schema-00 <<-- might be incorrect now that 2020-12 is used
//
// New URIs can be derived from it using the derive()-method.
// This is useful for resolving refs or subschema-IDs in json-schemas.
@@ -128,7 +128,7 @@ public:
namespace json_schema
{
-extern json draft7_schema_builtin;
+extern json draft_2020_12_schema_builtin;
typedef std::function schema_loader;
typedef std::function format_checker;
diff --git a/src/string-format-check.cpp b/src/string-format-check.cpp
index ecc428f..cb34ed9 100644
--- a/src/string-format-check.cpp
+++ b/src/string-format-check.cpp
@@ -398,7 +398,7 @@ void default_string_format_check(const std::string &format, const std::string &v
throw exception;
}
} else {
- /* yet unsupported JSON schema draft 7 built-ins */
+ /* as-of-yet unsupported JSON schema draft 2020-12 built-ins */
static const std::vector jsonSchemaStringFormatBuiltIns{
"date-time", "time", "date", "email", "idn-email", "hostname", "idn-hostname", "ipv4", "ipv6", "uri",
"uri-reference", "iri", "iri-reference", "uri-template", "json-pointer", "relative-json-pointer", "regex"};
diff --git a/test/JSON-Schema-Test-Suite/CMakeLists.txt b/test/JSON-Schema-Test-Suite/CMakeLists.txt
index 3d93b55..8444acc 100644
--- a/test/JSON-Schema-Test-Suite/CMakeLists.txt
+++ b/test/JSON-Schema-Test-Suite/CMakeLists.txt
@@ -1,6 +1,6 @@
set(JSON_SCHEMA_TEST_PREFIX "JSON-Suite" CACHE STRING "prefix for JSON-tests added to ctest")
-set(DRAFT "draft7")
+set(DRAFT "draft_2020-12")
# find schema-test-suite
find_path(JSON_SCHEMA_TEST_SUITE_PATH
diff --git a/test/JSON-Schema-Test-Suite/json-schema-test.cpp b/test/JSON-Schema-Test-Suite/json-schema-test.cpp
index deee4c8..a4fd16c 100644
--- a/test/JSON-Schema-Test-Suite/json-schema-test.cpp
+++ b/test/JSON-Schema-Test-Suite/json-schema-test.cpp
@@ -18,8 +18,8 @@ using nlohmann::json_schema::json_validator;
static void loader(const json_uri &uri, json &schema)
{
- if (uri.location() == "http://json-schema.org/draft-07/schema") {
- schema = nlohmann::json_schema::draft7_schema_builtin;
+ if (uri.location() == "http://json-schema.org/draft/2020-12/schema") {
+ schema = nlohmann::json_schema::draft_2020_12_schema_builtin;
return;
}
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/additionalItems.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/additionalItems.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/additionalProperties.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/additionalProperties.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/allOf.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/allOf.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/allOf.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/allOf.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/anyOf.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/anyOf.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/anyOf.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/anyOf.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/boolean_schema.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/boolean_schema.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/const.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/const.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/const.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/const.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/contains.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/contains.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/contains.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/contains.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/default.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/default.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/default.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/default.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/definitions.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/definitions.json
similarity index 79%
rename from test/JSON-Schema-Test-Suite/tests/draft7/definitions.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/definitions.json
index afe396e..c197946 100644
--- a/test/JSON-Schema-Test-Suite/tests/draft7/definitions.json
+++ b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/definitions.json
@@ -1,12 +1,12 @@
[
{
"description": "validate definition against metaschema",
- "schema": {"$ref": "http://json-schema.org/draft-07/schema#"},
+ "schema": {"$schema": "http://json-schema.org/draft/2020-12/schema"},
"tests": [
{
"description": "valid definition schema",
"data": {
- "definitions": {
+ "$defs": {
"foo": {"type": "integer"}
}
},
@@ -15,7 +15,7 @@
{
"description": "invalid definition schema",
"data": {
- "definitions": {
+ "$defs": {
"foo": {"type": 1}
}
},
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/dependencies.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/dependencies.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/dependencies.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/dependencies.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/enum.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/enum.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/enum.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/enum.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/exclusiveMaximum.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/exclusiveMaximum.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/exclusiveMinimum.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/exclusiveMinimum.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/format.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/format.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/format.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/format.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/id.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/id.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/id.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/id.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/if-then-else.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/if-then-else.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/infinite-loop-detection.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/infinite-loop-detection.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/infinite-loop-detection.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/infinite-loop-detection.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/items.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/items.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/items.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/items.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/maxItems.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/maxItems.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/maxItems.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/maxItems.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/maxLength.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/maxLength.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/maxLength.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/maxLength.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/maxProperties.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/maxProperties.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/maximum.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/maximum.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/maximum.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/maximum.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/minItems.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/minItems.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/minItems.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/minItems.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/minLength.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/minLength.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/minLength.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/minLength.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/minProperties.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/minProperties.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/minProperties.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/minProperties.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/minimum.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/minimum.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/minimum.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/minimum.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/multipleOf.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/multipleOf.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/not.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/not.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/not.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/not.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/oneOf.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/oneOf.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/oneOf.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/oneOf.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/bignum.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/bignum.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/content.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/content.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/content.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/content.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/ecmascript-regex.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/ecmascript-regex.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/float-overflow.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/float-overflow.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/float-overflow.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/float-overflow.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/date-time.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/date-time.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/date.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/date.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/email.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/email.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/hostname.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/hostname.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/idn-email.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/idn-email.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/idn-hostname.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/idn-hostname.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/ipv4.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/ipv4.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/ipv6.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/ipv6.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/iri-reference.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/iri-reference.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/iri.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/iri.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/json-pointer.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/json-pointer.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/regex.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/regex.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/relative-json-pointer.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/relative-json-pointer.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/time.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/time.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/uri-reference.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/uri-reference.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/uri-template.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/uri-template.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/uri.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/uri.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/format/uuid.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/uuid.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/format/uuid.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/format/uuid.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/non-bmp-regex.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/non-bmp-regex.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/non-bmp-regex.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/non-bmp-regex.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/optional/unicode.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/unicode.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/optional/unicode.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/optional/unicode.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/pattern.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/pattern.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/pattern.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/pattern.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/patternProperties.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/patternProperties.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/properties.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/properties.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/properties.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/properties.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/propertyNames.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/propertyNames.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/ref.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/ref.json
similarity index 99%
rename from test/JSON-Schema-Test-Suite/tests/draft7/ref.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/ref.json
index 900ebb0..b394909 100644
--- a/test/JSON-Schema-Test-Suite/tests/draft7/ref.json
+++ b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/ref.json
@@ -213,7 +213,7 @@
},
{
"description": "remote ref, containing refs itself",
- "schema": {"$ref": "http://json-schema.org/draft-07/schema#"},
+ "schema": {"$schema": "https://json-schema.org/draft/2020-12/schema"},
"tests": [
{
"description": "remote ref valid",
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/refRemote.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/refRemote.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/refRemote.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/refRemote.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/required.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/required.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/required.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/required.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/type.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/type.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/type.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/type.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/uniqueItems.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/uniqueItems.json
diff --git a/test/JSON-Schema-Test-Suite/tests/draft7/unknownKeyword.json b/test/JSON-Schema-Test-Suite/tests/draft_2020-12/unknownKeyword.json
similarity index 100%
rename from test/JSON-Schema-Test-Suite/tests/draft7/unknownKeyword.json
rename to test/JSON-Schema-Test-Suite/tests/draft_2020-12/unknownKeyword.json
diff --git a/test/errors.cpp b/test/errors.cpp
index 3f95d15..0c62b6e 100644
--- a/test/errors.cpp
+++ b/test/errors.cpp
@@ -21,7 +21,7 @@ namespace
// The schema is defined based upon a string literal
static json person_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"title": "A person",
"properties": {
"name": {
diff --git a/test/issue-100/schema.json b/test/issue-100/schema.json
index 3230714..7d7e07d 100644
--- a/test/issue-100/schema.json
+++ b/test/issue-100/schema.json
@@ -1,6 +1,6 @@
{
"$id": "http://xxx.local/schemas/mySchema.json",
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
diff --git a/test/issue-101/schema.json b/test/issue-101/schema.json
index 19fad64..6fb73f0 100644
--- a/test/issue-101/schema.json
+++ b/test/issue-101/schema.json
@@ -1,6 +1,6 @@
{
"$id": "http://xxx.local/schemas/mySchema.json",
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
diff --git a/test/issue-12/schema.json b/test/issue-12/schema.json
index ab104fa..75cefda 100644
--- a/test/issue-12/schema.json
+++ b/test/issue-12/schema.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-04/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"properties": {
"x": {
"type": "integer",
diff --git a/test/issue-149-entry-selection.cpp b/test/issue-149-entry-selection.cpp
index c54c2c4..f6a8ba9 100644
--- a/test/issue-149-entry-selection.cpp
+++ b/test/issue-149-entry-selection.cpp
@@ -21,7 +21,7 @@ static int error_count;
// The schema is defined based upon a string literal
static json person_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"type": "integer",
"definitions": {
"A": {
diff --git a/test/issue-189-default-values.cpp b/test/issue-189-default-values.cpp
index e7232d3..5e505d3 100644
--- a/test/issue-189-default-values.cpp
+++ b/test/issue-189-default-values.cpp
@@ -7,7 +7,7 @@ using nlohmann::json_schema::json_validator;
static const json rectangle_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"properties": {
"width": {
"$ref": "#/definitions/length",
@@ -27,7 +27,7 @@ static const json rectangle_schema = R"(
static const json quad_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"properties": {
"width": {
"$ref": "#/properties/height",
@@ -57,7 +57,7 @@ static const json quad_schema = R"(
static const json default_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"definitions": {
"defaultLength": {
"default": 5
diff --git a/test/issue-209/color.schema.json b/test/issue-209/color.schema.json
index 2d4227b..f868b0c 100644
--- a/test/issue-209/color.schema.json
+++ b/test/issue-209/color.schema.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"$id": "https://example.invalid/color.schema.json",
"title": "color",
"description": "X11/HTML/CSS color name as a JSON string",
diff --git a/test/issue-209/entities.schema.json b/test/issue-209/entities.schema.json
index 95828b8..969f278 100644
--- a/test/issue-209/entities.schema.json
+++ b/test/issue-209/entities.schema.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"$id": "https://example.invalid/entities.schema.json",
"title": "Entities",
"type": "array",
diff --git a/test/issue-229-oneof-default-values.cpp b/test/issue-229-oneof-default-values.cpp
index 6bd6e8e..762a297 100644
--- a/test/issue-229-oneof-default-values.cpp
+++ b/test/issue-229-oneof-default-values.cpp
@@ -7,7 +7,7 @@ using nlohmann::json_schema::json_validator;
static const json default_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"type": "object",
"oneOf": [
{
diff --git a/test/issue-243-root-default-values.cpp b/test/issue-243-root-default-values.cpp
index 34f0582..eeb2b25 100644
--- a/test/issue-243-root-default-values.cpp
+++ b/test/issue-243-root-default-values.cpp
@@ -7,7 +7,7 @@ using nlohmann::json_schema::json_validator;
static const json root_default = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"properties": {
"width": {
"type": "integer"
diff --git a/test/issue-25-default-values.cpp b/test/issue-25-default-values.cpp
index 39a53df..781c040 100644
--- a/test/issue-25-default-values.cpp
+++ b/test/issue-25-default-values.cpp
@@ -6,7 +6,7 @@ using nlohmann::json_schema::json_validator;
static const json person_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"title": "A person",
"properties": {
"name": {
diff --git a/test/issue-255-error-message-limit-precision.cpp b/test/issue-255-error-message-limit-precision.cpp
index 5e8a6cf..6d3f72c 100644
--- a/test/issue-255-error-message-limit-precision.cpp
+++ b/test/issue-255-error-message-limit-precision.cpp
@@ -6,7 +6,7 @@ using nlohmann::json_schema::json_validator;
static const json schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"$id": "arc.schema.json",
"properties": {
"angle": {
diff --git a/test/issue-70-root-schema-constructor.cpp b/test/issue-70-root-schema-constructor.cpp
index f19db3c..3e70187 100644
--- a/test/issue-70-root-schema-constructor.cpp
+++ b/test/issue-70-root-schema-constructor.cpp
@@ -21,7 +21,7 @@ namespace
// The schema is defined based upon a string literal
static json person_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"title": "A person",
"properties": {
"name": {
diff --git a/test/issue-70.cpp b/test/issue-70.cpp
index bfac0a5..eb73f13 100644
--- a/test/issue-70.cpp
+++ b/test/issue-70.cpp
@@ -5,7 +5,7 @@ using nlohmann::json_schema::json_validator;
static const json person_schema = R"(
{
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"title": "A person",
"properties": {
"name": {
diff --git a/test/issue-9/bar.json b/test/issue-9/bar.json
index 6f09818..04570af 100644
--- a/test/issue-9/bar.json
+++ b/test/issue-9/bar.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-04/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"description": "Describes bar",
"type": "object",
"required": [
diff --git a/test/issue-9/base.json b/test/issue-9/base.json
index 8faa877..950a56f 100644
--- a/test/issue-9/base.json
+++ b/test/issue-9/base.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-04/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"description": "Describes foo",
"type": "object",
"allOf": [
diff --git a/test/issue-9/foo/baz/baz.json b/test/issue-9/foo/baz/baz.json
index 1ed89d2..f92a50e 100644
--- a/test/issue-9/foo/baz/baz.json
+++ b/test/issue-9/foo/baz/baz.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-04/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"description": "Describes baz",
"$ref": "qux/qux.json"
}
diff --git a/test/issue-9/foo/baz/qux/qux.json b/test/issue-9/foo/baz/qux/qux.json
index ebdc4c7..6a26cb6 100644
--- a/test/issue-9/foo/baz/qux/qux.json
+++ b/test/issue-9/foo/baz/qux/qux.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-04/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"description": "Describes qux",
"type": "object",
"required": [
diff --git a/test/issue-9/foo/foo.json b/test/issue-9/foo/foo.json
index 298f9c8..38f5e57 100644
--- a/test/issue-9/foo/foo.json
+++ b/test/issue-9/foo/foo.json
@@ -1,5 +1,5 @@
{
- "$schema": "http://json-schema.org/draft-04/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"description": "Describes foo",
"$ref": "baz/baz.json"
}
diff --git a/test/issue-96/schema.json b/test/issue-96/schema.json
index c608adf..2a0ff02 100644
--- a/test/issue-96/schema.json
+++ b/test/issue-96/schema.json
@@ -1,6 +1,6 @@
{
"$id": "http://xxx.local/schemas/mySchema.json",
- "$schema": "http://json-schema.org/draft-07/schema#",
+ "$schema": "http://json-schema.org/draft/2020-12/schema",
"definitions": {
"topDef": {
"$id": "#topDef_ref",
diff --git a/test/uri.cpp b/test/uri.cpp
index 38c81ee..27526e3 100644
--- a/test/uri.cpp
+++ b/test/uri.cpp
@@ -91,15 +91,15 @@ int main(void)
"",
"");
- json_uri http("http://json-schema.org/draft-07/schema#");
+ json_uri http("http://json-schema.org/draft/2020-12/schema");
paths(http,
- "http://json-schema.org/draft-07/schema",
- "http://json-schema.org/draft-07",
+ "http://json-schema.org/draft/2020-12/schema",
+ "http://json-schema.org/draft/2020-12",
"http://json-schema.org");
pointer_plain_name(http,
- "http://json-schema.org/draft-07/schema",
- "http://json-schema.org/draft-07",
+ "http://json-schema.org/draft/2020-12/schema",
+ "http://json-schema.org/draft/2020-12",
"http://json-schema.org");
return errors;