Skip to content

Commit de85e51

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 e256bca commit de85e51

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
@@ -2083,17 +2083,11 @@
20832083
"additionalProperties", whose behavior is defined in terms of
20842084
"properties" and "patternProperties"
20852085
</t>
2086-
<t>
2087-
"unevaluatedProperties", whose behavior is defined in terms of
2088-
annotations from "properties", "patternProperties",
2089-
"additionalProperties" and itself
2090-
</t>
20912086
<t>
20922087
"items", whose behavior is defined in terms of "prefixItems"
20932088
</t>
20942089
<t>
2095-
"unevaluatedItems", whose behavior is defined in terms of annotations
2096-
from "prefixItems", "items", "contains", and itself
2090+
"contains", whose behavior is defined in terms of "minContains"
20972091
</t>
20982092
</list>
20992093
</t>
@@ -2521,6 +2515,26 @@
25212515
before the next to indicate the same syntax and semantics
25222516
as those listed here.
25232517
</t>
2518+
2519+
<section title="Keyword Independence">
2520+
<t>
2521+
Schema keywords typically operate independently, without
2522+
affecting each other's outcomes. However, the keywords in this
2523+
vocabulary are notable exceptions:
2524+
<list>
2525+
<t>
2526+
"unevaluatedItems", whose behavior is defined in terms of annotations
2527+
from "prefixItems", "items", "contains", and itself
2528+
</t>
2529+
<t>
2530+
"unevaluatedProperties", whose behavior is defined in terms of
2531+
annotations from "properties", "patternProperties",
2532+
"additionalProperties" and itself
2533+
</t>
2534+
</list>
2535+
</t>
2536+
</section>
2537+
25242538
<section title="unevaluatedItems" anchor="unevaluatedItems">
25252539
<t>
25262540
The value of "unevaluatedItems" MUST be a valid JSON Schema.
@@ -2530,7 +2544,7 @@
25302544
adjacent keywords that apply to the instance location being validated.
25312545
Specifically, the annotations from "prefixItems", "items", and "contains",
25322546
which can come from those keywords when they are adjacent to the
2533-
"unevaluatedItems" keyword. Those two annotations, as well as
2547+
"unevaluatedItems" keyword. Those three annotations, as well as
25342548
"unevaluatedItems", can also result from any and all adjacent
25352549
<xref target="in-place">in-place applicator</xref> keywords.
25362550
This includes but is not limited to the in-place applicators
@@ -3644,10 +3658,10 @@ https://example.com/schemas/common#/$defs/count/minimum
36443658
keywords in that vocabulary, is shown after the main example meta-schema.
36453659
</t>
36463660
<t>
3647-
The main example meta-schema also restricts the usage of the Applicator
3661+
The main example meta-schema also restricts the usage of the Unevaluated
36483662
vocabulary by forbidding the keywords prefixed with "unevaluated", which
36493663
are particularly complex to implement. This does not change the semantics
3650-
or set of keywords defined by the Applicator vocabulary. It just ensures
3664+
or set of keywords defined by the other vocabularies. It just ensures
36513665
that schemas using this meta-schema that attempt to use the keywords
36523666
prefixed with "unevaluated" will fail validation against this meta-schema.
36533667
</t>
@@ -3682,7 +3696,7 @@ https://example.com/schemas/common#/$defs/count/minimum
36823696
{"$ref": "https://example.com/meta/example-vocab",
36833697
],
36843698
"patternProperties": {
3685-
"^unevaluated.*$": false
3699+
"^unevaluated": false
36863700
},
36873701
"properties": {
36883702
"localKeyword": {

0 commit comments

Comments
 (0)