diff --git a/jsonschema-core.xml b/jsonschema-core.xml index f387940c..75eecd4a 100644 --- a/jsonschema-core.xml +++ b/jsonschema-core.xml @@ -185,11 +185,18 @@ -
+
A JSON Schema document, or simply a schema, is a JSON document used to describe an instance. A schema is itself interpreted as an instance. - A JSON schema MUST be an object. + A JSON Schema MUST be an object or a boolean. + + + Boolean values are equivalent to the following behaviors: + + Always passes validation, as if the empty schema {} + Always fails validation, as if the schema { "not":{} } + Properties that are used to describe the instance are called keywords, or schema keywords. @@ -231,6 +238,9 @@ In this example document, the schema titled "array item" is a subschema, and the schema titled "root" is the root schema. + + As with the root schema, a subschema is either an object or a boolean. +
@@ -299,8 +309,11 @@
- Any time a subschema is expected, a schema may instead use an object containing a "$ref" property. - The value of the $ref is a URI Reference. + The "$ref" keyword is used to reference a schema, and provides the ability to validate recursive structures through self-reference. + + + An object schema with a "$ref" property MUST be interpreted as a "$ref" reference. + The value of the "$ref" property MUST be a URI Reference. Resolved against the current URI base, it identifies the URI of a schema to use. All other properties in a "$ref" object MUST be ignored. @@ -323,7 +336,7 @@ RFC3986 Section 5.1 defines how to determine the default base URI of a document. - Informatively, the initial base URI of a schema is the URI it was found at, or a suitable substitute URI if none is known. + Informatively, the initial base URI of a schema is the URI at which it was found, or a suitable substitute URI if none is known.
@@ -660,6 +673,7 @@ User-Agent: so-cool-json-schema/1.0.2 curl/7.43.0 Updated intro + Allowed for any schema to be a boolean diff --git a/jsonschema-validation.xml b/jsonschema-validation.xml index 7bbd6c70..637051df 100644 --- a/jsonschema-validation.xml +++ b/jsonschema-validation.xml @@ -327,8 +327,7 @@
- The value of "items" MUST be either an object or an array of objects. - Each object MUST be a valid JSON Schema. + The value of "items" MUST be either a valid JSON Schema or an array of valid JSON Schemas. If absent, it can be considered present with an empty schema. @@ -350,8 +349,7 @@
- The value of "additionalItems" MUST be a boolean or an object. - If it is an object, the object MUST be a valid JSON Schema. + The value of "additionalItems" MUST be a valid JSON Schema. If absent, it can be considered present with an empty schema. @@ -466,7 +464,7 @@
The value of "properties" MUST be an object. Each value of this object - MUST be an object, and each object MUST be a valid JSON Schema. + MUST be a valid JSON Schema. If absent, it can be considered the same as an empty object. @@ -487,7 +485,7 @@ The value of "patternProperties" MUST be an object. Each property name of this object SHOULD be a valid regular expression, according to the ECMA 262 regular expression dialect. Each property value of this object - MUST be an object, and each object MUST be a valid JSON Schema. + MUST be a valid JSON Schema. If absent, it can be considered the same as an empty object. @@ -506,8 +504,7 @@
- The value of "additionalProperties" MUST be a boolean or an - object. If it is an object, the object MUST be a valid JSON Schema. + The value of "additionalProperties" MUST be a valid JSON Schema. If "additionalProperties" is absent, it may be considered present with @@ -535,12 +532,11 @@ This keyword's value MUST be an object. Each property specifies a dependency. - Each dependency value MUST be an object or an array. + Each dependency value MUST be an array or a valid JSON Schema. - If the dependency value is an object, it MUST be a valid JSON Schema. If the - dependency key is a property in the instance, the dependency value must validate - against the entire instance. + If the dependency value is a subschema, and the dependency key is a property + in the instance, the entire instance must validate against the dependency value. If the dependency value is an array, each element in the array,