656656 <t >
657657 Other keywords may take into account the dynamic scope that
658658 exists during the evaluation of a schema, typically together
659- with an instance document. The outermost dynamic scope is the
660- root schema of the schema document in which processing begins.
659+ with an instance document.
660+ The outermost dynamic scope is the schema object at
661+ which processing begins, even if it is not a schema resource root.
661662 The path from this root schema to any particular keyword (that
662663 includes any "$ref" and "$dynamicRef" keywords that may have
663664 been resolved) is considered the keyword's "validation path."
16321633 </t >
16331634 <t >
16341635 When schemas are downloaded,
1635- for example by a generic user-agent that doesn't know until runtime which schemas to download,
1636+ for example by a generic user-agent that does not know until runtime which schemas to download,
16361637 see <xref target =" hypermedia" >Usage for Hypermedia</xref >.
16371638 </t >
16381639 <t >
20832084 "additionalProperties", whose behavior is defined in terms of
20842085 "properties" and "patternProperties"
20852086 </t >
2086- <t >
2087- "unevaluatedProperties", whose behavior is defined in terms of
2088- annotations from "properties", "patternProperties",
2089- "additionalProperties" and itself
2090- </t >
20912087 <t >
20922088 "items", whose behavior is defined in terms of "prefixItems"
20932089 </t >
20942090 <t >
2095- "unevaluatedItems", whose behavior is defined in terms of annotations
2096- from "prefixItems", "items", "contains", and itself
2091+ "contains", whose behavior is defined in terms of "minContains"
20972092 </t >
20982093 </list >
20992094 </t >
23802375 </t >
23812376 <t >
23822377 The annotation result of this keyword is the set of instance
2383- property names matched by this keyword. Annotation results
2384- for "properties" keywords from multiple schemas applied to
2385- the same instance location are combined by taking the union
2386- of the sets.
2378+ property names matched by this keyword.
23872379 </t >
23882380 <t >
23892381 Omitting this keyword has the same assertion behavior as
24062398 </t >
24072399 <t >
24082400 The annotation result of this keyword is the set of instance
2409- property names matched by this keyword. Annotation results
2410- for "patternProperties" keywords from multiple schemas applied to
2411- the same instance location are combined by taking the union
2412- of the sets.
2401+ property names matched by this keyword.
24132402 </t >
24142403 <t >
24152404 Omitting this keyword has the same assertion behavior as
24362425 <t >
24372426 The annotation result of this keyword is the set of instance
24382427 property names validated by this keyword's subschema.
2439- Annotation results for "additionalProperties" keywords from
2440- multiple schemas applied to the same instance location are combined
2441- by taking the union of the sets.
24422428 </t >
24432429 <t >
24442430 Omitting this keyword has the same assertion behavior as
25212507 before the next to indicate the same syntax and semantics
25222508 as those listed here.
25232509 </t >
2510+
2511+ <section title =" Keyword Independence" >
2512+ <t >
2513+ Schema keywords typically operate independently, without
2514+ affecting each other's outcomes. However, the keywords in this
2515+ vocabulary are notable exceptions:
2516+ <list >
2517+ <t >
2518+ "unevaluatedItems", whose behavior is defined in terms of annotations
2519+ from "prefixItems", "items", "contains", and itself
2520+ </t >
2521+ <t >
2522+ "unevaluatedProperties", whose behavior is defined in terms of
2523+ annotations from "properties", "patternProperties",
2524+ "additionalProperties" and itself
2525+ </t >
2526+ </list >
2527+ </t >
2528+ </section >
2529+
25242530 <section title =" unevaluatedItems" anchor =" unevaluatedItems" >
25252531 <t >
25262532 The value of "unevaluatedItems" MUST be a valid JSON Schema.
25302536 adjacent keywords that apply to the instance location being validated.
25312537 Specifically, the annotations from "prefixItems", "items", and "contains",
25322538 which can come from those keywords when they are adjacent to the
2533- "unevaluatedItems" keyword. Those two annotations, as well as
2539+ "unevaluatedItems" keyword. Those three annotations, as well as
25342540 "unevaluatedItems", can also result from any and all adjacent
25352541 <xref target =" in-place" >in-place applicator</xref > keywords.
25362542 This includes but is not limited to the in-place applicators
25992605 <t >
26002606 The annotation result of this keyword is the set of instance
26012607 property names validated by this keyword's subschema.
2602- Annotation results for "unevaluatedProperties" keywords from
2603- multiple schemas applied to the same instance location are combined
2604- by taking the union of the sets.
26052608 </t >
26062609 <t >
26072610 Omitting this keyword has the same assertion behavior as
26482651 structure that matches the exact structure of the schema.
26492652 </t >
26502653 </list >
2651- An implementation SHOULD provide at least the "flag", "basic", or "detailed"
2654+ An implementation SHOULD provide at least one of the "flag", "basic", or "detailed"
26522655 format and MAY provide the "verbose" format. If it provides one or more of the
2653- complex formats, it MUST also provide the "flag" format. Implementations SHOULD
2654- specify in their documentation which formats they support.
2656+ "detailed" or "verbose" formats, it MUST also provide the "flag" format.
2657+ Implementations SHOULD specify in their documentation which formats they support.
26552658 </t >
26562659
26572660 </section >
27042707 Note that "absolute" here is in the sense of "absolute filesystem path"
27052708 (meaning the complete location) rather than the "absolute-URI"
27062709 terminology from RFC 3986 (meaning with scheme but without fragment).
2707- Keyword absolute locations will always have a fragment in order to
2710+ Keyword absolute locations will have a fragment in order to
27082711 identify the keyword.
27092712 </cref >
27102713 </t >
@@ -2716,8 +2719,8 @@ https://example.com/schemas/common#/$defs/count/minimum
27162719 </artwork >
27172720 </figure >
27182721 <t >
2719- This information MAY be omitted only if either the relative location contains
2720- no references or if the schema does not declare an absolute URI as its "$id".
2722+ This information MAY be omitted only if either the dynamic scope did not pass
2723+ over a reference or if the schema does not declare an absolute URI as its "$id".
27212724 </t >
27222725 <t >
27232726 The JSON key for this information is "absoluteKeywordLocation".
@@ -3083,7 +3086,7 @@ https://example.com/schemas/common#/$defs/count/minimum
30833086 <t >
30843087 Instances and schemas are both frequently written by untrusted third parties, to be
30853088 deployed on public Internet servers.
3086- Validators should take care that the parsing and validating against schemas doesn't consume excessive
3089+ Validators should take care that the parsing and validating against schemas does not consume excessive
30873090 system resources.
30883091 Validators MUST NOT fall into an infinite loop.
30893092 </t >
@@ -3093,7 +3096,7 @@ https://example.com/schemas/common#/$defs/count/minimum
30933096 excessive consumption of system resources in such a scenario.
30943097 </t >
30953098 <t >
3096- Servers MUST ensure that malicious parties can't change the functionality of
3099+ Servers MUST ensure that malicious parties cannot change the functionality of
30973100 existing schemas by uploading a schema with a pre-existing or very similar "$id".
30983101 </t >
30993102 <t >
@@ -3599,9 +3602,9 @@ https://example.com/schemas/common#/$defs/count/minimum
35993602 behavior is undefined.
36003603 </t >
36013604 <t >
3602- Vocabulary authors should provide a meta-schema that validates the
3605+ Vocabulary authors SHOULD provide a meta-schema that validates the
36033606 expected usage of the vocabulary's keywords on their own. Such meta-schemas
3604- should not forbid additional keywords, and must not forbid any
3607+ SHOULD not forbid additional keywords, and MUST not forbid any
36053608 keywords from the Core vocabulary.
36063609 </t >
36073610 <t >
@@ -3644,10 +3647,10 @@ https://example.com/schemas/common#/$defs/count/minimum
36443647 keywords in that vocabulary, is shown after the main example meta-schema.
36453648 </t >
36463649 <t >
3647- The main example meta-schema also restricts the usage of the Applicator
3650+ The main example meta-schema also restricts the usage of the Unevaluated
36483651 vocabulary by forbidding the keywords prefixed with "unevaluated", which
36493652 are particularly complex to implement. This does not change the semantics
3650- or set of keywords defined by the Applicator vocabulary. It just ensures
3653+ or set of keywords defined by the other vocabularies. It just ensures
36513654 that schemas using this meta-schema that attempt to use the keywords
36523655 prefixed with "unevaluated" will fail validation against this meta-schema.
36533656 </t >
@@ -3682,7 +3685,7 @@ https://example.com/schemas/common#/$defs/count/minimum
36823685 {"$ref": "https://example.com/meta/example-vocab",
36833686 ],
36843687 "patternProperties": {
3685- "^unevaluated.*$ ": false
3688+ "^unevaluated": false
36863689 },
36873690 "properties": {
36883691 "localKeyword": {
0 commit comments