Skip to content

Commit 8f78459

Browse files
unevaluated* is now in its own vocabulary, so move some references accordingly
..also added mention of "contains" dependence on "minContains" (specifically when its value is 0)
1 parent 8426b50 commit 8f78459

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

jsonschema-core.xml

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2077,17 +2077,11 @@
20772077
"additionalProperties", whose behavior is defined in terms of
20782078
"properties" and "patternProperties"
20792079
</t>
2080-
<t>
2081-
"unevaluatedProperties", whose behavior is defined in terms of
2082-
annotations from "properties", "patternProperties",
2083-
"additionalProperties" and itself
2084-
</t>
20852080
<t>
20862081
"items", whose behavior is defined in terms of "prefixItems"
20872082
</t>
20882083
<t>
2089-
"unevaluatedItems", whose behavior is defined in terms of annotations
2090-
from "prefixItems", "items", "contains", and itself
2084+
"contains", whose behavior is defined in terms of "minContains"
20912085
</t>
20922086
</list>
20932087
</t>
@@ -2515,6 +2509,26 @@
25152509
before the next to indicate the same syntax and semantics
25162510
as those listed here.
25172511
</t>
2512+
2513+
<section title="Keyword Independence">
2514+
<t>
2515+
Schema keywords typically operate independently, without
2516+
affecting each other's outcomes. However, the keywords in this
2517+
vocabulary are notable exceptions:
2518+
<list>
2519+
<t>
2520+
"unevaluatedItems", whose behavior is defined in terms of annotations
2521+
from "prefixItems", "items", "contains", and itself
2522+
</t>
2523+
<t>
2524+
"unevaluatedProperties", whose behavior is defined in terms of
2525+
annotations from "properties", "patternProperties",
2526+
"additionalProperties" and itself
2527+
</t>
2528+
</list>
2529+
</t>
2530+
</section>
2531+
25182532
<section title="unevaluatedItems" anchor="unevaluatedItems">
25192533
<t>
25202534
The value of "unevaluatedItems" MUST be a valid JSON Schema.
@@ -2524,7 +2538,7 @@
25242538
adjacent keywords that apply to the instance location being validated.
25252539
Specifically, the annotations from "prefixItems", "items", and "contains",
25262540
which can come from those keywords when they are adjacent to the
2527-
"unevaluatedItems" keyword. Those two annotations, as well as
2541+
"unevaluatedItems" keyword. Those three annotations, as well as
25282542
"unevaluatedItems", can also result from any and all adjacent
25292543
<xref target="in-place">in-place applicator</xref> keywords.
25302544
This includes but is not limited to the in-place applicators
@@ -3639,11 +3653,11 @@ https://example.com/schemas/common#/$defs/count/minimum
36393653
</t>
36403654
<t>
36413655
The main example meta-schema also restricts the usage of the Applicator
3642-
vocabulary by forbidding the keywords prefixed with "unevaluated", which
3656+
vocabulary by forbidding the keywords prefixed with "additional", which
36433657
are particularly complex to implement. This does not change the semantics
36443658
or set of keywords defined by the Applicator vocabulary. It just ensures
36453659
that schemas using this meta-schema that attempt to use the keywords
3646-
prefixed with "unevaluated" will fail validation against this meta-schema.
3660+
prefixed with "additional" will fail validation against this meta-schema.
36473661
</t>
36483662
<t>
36493663
Finally, this meta-schema describes the syntax of a keyword, "localKeyword",
@@ -3676,7 +3690,7 @@ https://example.com/schemas/common#/$defs/count/minimum
36763690
{"$ref": "https://example.com/meta/example-vocab",
36773691
],
36783692
"patternProperties": {
3679-
"^unevaluated.*$": false
3693+
"^additional.*$": false
36803694
},
36813695
"properties": {
36823696
"localKeyword": {

0 commit comments

Comments
 (0)