|
2083 | 2083 | "additionalProperties", whose behavior is defined in terms of |
2084 | 2084 | "properties" and "patternProperties" |
2085 | 2085 | </t> |
2086 | | - <t> |
2087 | | - "unevaluatedProperties", whose behavior is defined in terms of |
2088 | | - annotations from "properties", "patternProperties", |
2089 | | - "additionalProperties" and itself |
2090 | | - </t> |
2091 | 2086 | <t> |
2092 | 2087 | "items", whose behavior is defined in terms of "prefixItems" |
2093 | 2088 | </t> |
2094 | 2089 | <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" |
2097 | 2091 | </t> |
2098 | 2092 | </list> |
2099 | 2093 | </t> |
|
2521 | 2515 | before the next to indicate the same syntax and semantics |
2522 | 2516 | as those listed here. |
2523 | 2517 | </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 | + |
2524 | 2538 | <section title="unevaluatedItems" anchor="unevaluatedItems"> |
2525 | 2539 | <t> |
2526 | 2540 | The value of "unevaluatedItems" MUST be a valid JSON Schema. |
|
2530 | 2544 | adjacent keywords that apply to the instance location being validated. |
2531 | 2545 | Specifically, the annotations from "prefixItems", "items", and "contains", |
2532 | 2546 | 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 |
2534 | 2548 | "unevaluatedItems", can also result from any and all adjacent |
2535 | 2549 | <xref target="in-place">in-place applicator</xref> keywords. |
2536 | 2550 | This includes but is not limited to the in-place applicators |
@@ -3644,10 +3658,10 @@ https://example.com/schemas/common#/$defs/count/minimum |
3644 | 3658 | keywords in that vocabulary, is shown after the main example meta-schema. |
3645 | 3659 | </t> |
3646 | 3660 | <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 |
3648 | 3662 | vocabulary by forbidding the keywords prefixed with "unevaluated", which |
3649 | 3663 | 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 |
3651 | 3665 | that schemas using this meta-schema that attempt to use the keywords |
3652 | 3666 | prefixed with "unevaluated" will fail validation against this meta-schema. |
3653 | 3667 | </t> |
@@ -3682,7 +3696,7 @@ https://example.com/schemas/common#/$defs/count/minimum |
3682 | 3696 | {"$ref": "https://example.com/meta/example-vocab", |
3683 | 3697 | ], |
3684 | 3698 | "patternProperties": { |
3685 | | - "^unevaluated.*$": false |
| 3699 | + "^unevaluated": false |
3686 | 3700 | }, |
3687 | 3701 | "properties": { |
3688 | 3702 | "localKeyword": { |
|
0 commit comments