diff --git a/jsonschema-core.xml b/jsonschema-core.xml index 61d9fff3..e9b65557 100644 --- a/jsonschema-core.xml +++ b/jsonschema-core.xml @@ -313,43 +313,70 @@
- Object properties that are applied to the instance are called keywords, - or schema keywords. Broadly speaking, keywords fall into one - of five categories: + Object properties that are applied to the instance are called keywords, or schema keywords. + Two properties in the same schema object are referred to as adjacent keywords. + As an authoring convenience, adjacent keywords can sometimes affect each other in a way that a property from a different schema (including sub-schemas) cannot. + + + Keywords are classified into one or more of six categories:
-
identifiers
+
Core keywords
+
+ Keywords that may configure how the schema is processed, + and can modify the meaning of other keywords in the schema. +
+
Assertion keywords
- control schema identification through setting a IRI - for the schema and/or changing how the base IRI is determined + Keywords that may decide an instance is invalid.
-
assertions
+
Annotation keywords
- produce a boolean result when applied to an instance + Keywords that produce output generated from an instance.
-
annotations
+
Applicator keywords
- attach information to an instance for application use + A keyword that has one or more subschemas, + that are applied against the instance, + or some value within the instance, + and logically aggregated together.
-
applicators
+
Reserved keywords
- apply one or more subschemas to a particular location - in the instance, and combine or modify their results + Keywords that are permitted in a schema, + but that do not do anything by themselves, + though their value may be read by or referred to by another keyword.
-
reserved locations
+
Arguments
- do not directly affect results, but reserve a place - for a specific purpose to ensure interoperability + Arguments are properties in a schema that are used by an adjacent keyword, + and whose meaning may only be defined in the presence of that keyword.
- Keywords may fall into multiple categories, although applicators - SHOULD only produce assertion results based on their subschemas' - results. They should not define additional constraints independent - of their subschemas. + Some properties may be classified into multiple categories. + Some keywords are also arguments to other keywords, + and applicator keywords are both assertions and annotations. - Keywords which are properties within the same schema object are referred to as adjacent keywords. + The categories that a keyword belongs to is defined per keyword. + Additionally, there are naming conventions that impose limits or requirements on the categories that keywords belong to: + + + + If a validator encounters a keyword whose assertion behavior is unknown (a keyword besides an "annotation-" keyword), + then attempting to compute the validation result SHOULD raise an error. Extension keywords, meaning those defined outside of this document