Skip to content

Commit 5817913

Browse files
authored
Merge pull request #1046 from karenetheridge/ether/rc1-revisions
rc1 revisions
2 parents 5cd32df + 8cdaf1a commit 5817913

File tree

1 file changed

+41
-38
lines changed

1 file changed

+41
-38
lines changed

jsonschema-core.xml

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -656,8 +656,9 @@
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."
@@ -1632,7 +1633,7 @@
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>
@@ -2083,17 +2084,11 @@
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>
@@ -2380,10 +2375,7 @@
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
@@ -2406,10 +2398,7 @@
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
@@ -2436,9 +2425,6 @@
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
@@ -2521,6 +2507,26 @@
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.
@@ -2530,7 +2536,7 @@
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
@@ -2599,9 +2605,6 @@
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
@@ -2648,10 +2651,10 @@
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>
@@ -2704,7 +2707,7 @@
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

Comments
 (0)