diff --git a/jsonschema-core.xml b/jsonschema-core.xml
index a1dccdab..aa478ec5 100644
--- a/jsonschema-core.xml
+++ b/jsonschema-core.xml
@@ -76,8 +76,7 @@
This specification defines JSON Schema core terminology and mechanisms, including
pointing to another JSON Schema by reference,
dereferencing a JSON Schema reference,
- specifying the vocabulary being used,
- and declaring the minimum functionality necessary for processing an instance against a schema.
+ and specifying the vocabulary being used.
Other specifications define the vocabularies that perform assertions about validation,
diff --git a/jsonschema-validation.xml b/jsonschema-validation.xml
index 0333e5ea..5ee79278 100644
--- a/jsonschema-validation.xml
+++ b/jsonschema-validation.xml
@@ -98,11 +98,6 @@
object instances. It uses the term "children instances" to refer to array elements
or object member values.
-
- This specification uses the term "property set" to refer to the set of an object's
- member names; for instance, the property set of JSON Object { "a": 1, "b": 2 } is
- [ "a", "b" ].
-
Elements in an array value are said to be unique if no two elements of this array
are equal.
@@ -167,8 +162,8 @@
- Most validation keywords only limit the range of values within a certain primitive type.
- When the primitive type of the instance is not of the type targeted by the keyword, the
+ Most validation keywords only constrain values within a certain primitive type.
+ When the type of the instance is not of the type targeted by the keyword, the
validation succeeds.
@@ -222,8 +217,8 @@
For schema author convenience, there are some exceptions:
- "additionalProperties", whose behavior is defined in terms of "properties" and "patternProperties";
- "additionalItems", whose behavior is defined in terms of "items"; and
+ "additionalProperties", whose behavior is defined in terms of "properties" and "patternProperties"; and
+ "additionalItems", whose behavior is defined in terms of "items".
@@ -241,7 +236,7 @@
- Validation keywords in a schema impose requirements for successfully validating an instance.
+ Validation keywords in a schema impose requirements for successful validation of an instance.
- The value of this keyword MUST be a non-negative integer.
- The value of this keyword MUST be an integer. This integer MUST be
- greater than, or equal to, 0.
-
+ The value of this keyword MUST be a non-negative integer.
A string instance is valid against this keyword if its
length is less than, or equal to, the value of this keyword.
@@ -306,6 +298,9 @@
+
+ The value of this keyword MUST be a non-negative integer.
+
A string instance is valid against this keyword if its
length is greater than, or equal to, the value of this keyword.
@@ -316,12 +311,7 @@
characters as defined by RFC 7159.
- The value of this keyword MUST be an integer. This integer MUST be
- greater than, or equal to, 0.
-
-
- "minLength", if absent, may be considered as being present with integer
- value 0.
+ Omitting this keyword has the same behavior as a value of 0.
@@ -342,9 +332,6 @@
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.
-
This keyword determines how child instances validate for arrays,
and does not directly validate the immediate instance itself.
@@ -358,15 +345,15 @@
each element of the instance validates against the schema at the
same position, if any.
+
+ Omitting this keyword has the same behavior as an empty schema.
+
The value of "additionalItems" MUST be a valid JSON Schema.
-
- If absent, it can be considered present with an empty schema.
-
This keyword determines how child instances validate for arrays,
and does not directly validate the immediate instance itself.
@@ -381,12 +368,14 @@
schema (possibly the default value of an empty schema) is
applied to all elements.
+
+ Omitting this keyword has the same behavior as an empty schema.
+
- The value of this keyword MUST be an integer. This integer MUST be
- greater than, or equal to, 0.
+ The value of this keyword MUST be a non-negative integer.
An array instance is valid against "maxItems" if its size is
@@ -396,16 +385,14 @@
- The value of this keyword MUST be an integer. This integer MUST be
- greater than, or equal to, 0.
+ The value of this keyword MUST be a non-negative integer.
An array instance is valid against "minItems" if its size is
greater than, or equal to, the value of this keyword.
- If this keyword is not present, it may be considered present with a
- value of 0.
+ Omitting this keyword has the same behavior as a value of 0.
@@ -419,8 +406,7 @@
successfully if all of its elements are unique.
- If not present, this keyword may be considered present with boolean
- value false.
+ Omitting this keyword has the same behavior as a value of false.
@@ -437,8 +423,7 @@
- The value of this keyword MUST be an integer. This integer MUST be
- greater than, or equal to, 0.
+ The value of this keyword MUST be a non-negative integer.
An object instance is valid against "maxProperties" if its
@@ -449,8 +434,7 @@
- The value of this keyword MUST be an integer. This integer MUST be
- greater than, or equal to, 0.
+ The value of this keyword MUST be a non-negative integer.
An object instance is valid against "minProperties" if its
@@ -458,33 +442,28 @@
keyword.
- If this keyword is not present, it may be considered present with a
- value of 0.
+ Omitting this keyword has the same behavior as a value of 0.
- The value of this keyword MUST be an array. Elements of this array,
- if any, MUST be strings, and MUST be unique.
+ The value of this keyword MUST be an array.
+ Elements of this array, if any, MUST be strings, and MUST be unique.
- An object instance is valid against this keyword if its
- property set contains all elements in this keyword's array value.
+ An object instance is valid against this keyword if every item in the array is
+ the name of a property in the instance.
- If this keyword is not present, it may be considered present
- as an empty array.
+ Omitting this keyword has the same behavior as an empty array.
- The value of "properties" MUST be an object. Each value of this object
- MUST be a valid JSON Schema.
-
-
- If absent, it can be considered the same as an empty schema.
+ The value of "properties" MUST be an object.
+ Each value of this object MUST be a valid JSON Schema.
This keyword determines how child instances validate for objects,
@@ -496,6 +475,9 @@
instance for that name successfully validates against the
corresponding schema.
+
+ Omitting this keyword has the same behavior as an empty object.
+
@@ -505,9 +487,6 @@
ECMA 262 regular expression dialect. Each property value of this object
MUST be a valid JSON Schema.
-
- If absent, it can be considered the same as an empty schema.
-
This keyword determines how child instances validate for objects,
and does not directly validate the immediate instance itself.
@@ -520,16 +499,15 @@
the child instance for that name successfully validates against each
schema that corresponds to a matching regular expression.
+
+ Omitting this keyword has the same behavior as an empty object.
+
The value of "additionalProperties" MUST be a valid JSON Schema.
-
- If "additionalProperties" is absent, it may be considered present with
- an empty schema as a value.
-
This keyword determines how child instances validate for objects,
and does not directly validate the immediate instance itself.
@@ -543,6 +521,9 @@
For all such properties, child validation succeeds if the child instance
validates against the "additionalProperties" schema.
+
+ Omitting this keyword has the same behavior as an empty schema.
+
@@ -564,6 +545,9 @@
a property in the instance, each of the items in the dependency
value must be a property that exists in the instance.
+
+ Omitting this keyword has the same behavior as an empty object.
+
@@ -575,6 +559,9 @@
validates against the provided schema.
Note the property name that the schema is testing will always be a string.
+
+ Omitting this keyword has the same behavior as an empty schema.
+
@@ -582,14 +569,13 @@
The value of this keyword MUST be an array. This array SHOULD have at
least one element. Elements in the array SHOULD be unique.
-
-
- Elements in the array MAY be of any type, including null.
-
An instance validates successfully against this keyword if its value is
equal to one of the elements in this keyword's array value.
+
+ Elements in the array might be of any value, including null.
+
@@ -619,12 +605,8 @@
- This keyword's value MUST be an array. This array MUST have at least one
- element.
-
-
- Elements of the array MUST be objects. Each object MUST be a valid JSON
- Schema.
+ This keyword's value MUST be a non-empty array.
+ Each item of the array MUST be a valid JSON Schema.
An instance validates successfully against this keyword if it validates
@@ -634,12 +616,8 @@
- This keyword's value MUST be an array. This array MUST have at least one
- element.
-
-
- Elements of the array MUST be objects. Each object MUST be a valid JSON
- Schema.
+ This keyword's value MUST be a non-empty array.
+ Each item of the array MUST be a valid JSON Schema.
An instance validates successfully against this keyword if it validates
@@ -649,12 +627,8 @@
- This keyword's value MUST be an array. This array MUST have at least one
- element.
-
-
- Elements of the array MUST be objects. Each object MUST be a valid JSON
- Schema.
+ This keyword's value MUST be a non-empty array.
+ Each item of the array MUST be a valid JSON Schema.
An instance validates successfully against this keyword if it validates
@@ -664,19 +638,20 @@
- This keyword's value MUST be an object. This object MUST be a valid JSON
- Schema.
+ This keyword's value MUST be a valid JSON Schema.
An instance is valid against this keyword if it fails to validate
successfully against the schema defined by this keyword.
+
+
- This keyword's value MUST be an object. Each member value of this object
- MUST be a valid JSON Schema.
+ This keyword's value MUST be an object.
+ Each member value of this object MUST be a valid JSON Schema.
This keyword plays no role in validation per se. Its role is to provide
@@ -707,9 +682,6 @@
-
-
-