Skip to content

wording fixes for the interim release #1155

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 28 additions & 12 deletions jsonschema-core.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2085,7 +2085,8 @@
"items", whose behavior is defined in terms of "prefixItems"
</t>
<t>
"contains", whose behavior is defined in terms of "minContains"
"contains", whose behavior is affected by the presence and value of
"minContains", in the Validation vocabulary
</t>
</list>
</t>
Expand Down Expand Up @@ -2318,6 +2319,8 @@
positions within the instance array, it produces an
annotation result of boolean true, indicating that all remaining array
elements have been evaluated against this keyword's subschema.
This annotation affects the behavior of "unevaluatedItems" in the
Unevaluated vocabulary.
</t>
<t>
Omitting this keyword has the same assertion behavior as
Expand All @@ -2337,15 +2340,10 @@
</t>
<t>
An array instance is valid against "contains" if at least one of
its elements is valid against the given schema. The subschema MUST be
applied to every array element even after the first match has
been found, in order to collect annotations for use by other keywords.
This is to ensure that all possible annotations are collected.
</t>
<t>
Logically, the validation result of applying the value subschema to each
item in the array MUST be ORed with "false", resulting in an overall
validation result.
its elements is valid against the given schema,
except when "minContains" is present and has a value of 0, in which
case an array instance MUST be valid against the "contains" keyword,
even if NONE of its elements is valid against the given schema.
</t>
<t>
This keyword produces an annotation value which is an array of
Expand All @@ -2355,6 +2353,16 @@
instance. The annotation MUST be present if the instance array to which
this keyword's schema applies is empty.
</t>
<t>
This annotation affects the behavior of "unevaluatedItems" in the
Unevaluated vocabulary, and MAY also be used to implement the
"minContains" and "maxContains" keywords in the Validation vocabulary.
</t>
<t>
The subschema MUST be applied to every array element even after the first
match has been found, in order to collect annotations for use by other
keywords. This is to ensure that all possible annotations are collected.
</t>
</section>
</section>

Expand All @@ -2373,6 +2381,8 @@
<t>
The annotation result of this keyword is the set of instance
property names matched by this keyword.
This annotation affects the behavior of "additionalProperties" (in
this vocabulary) and "unevaluatedProperties" in the Unevaluated vocabulary.
</t>
<t>
Omitting this keyword has the same assertion behavior as
Expand All @@ -2396,6 +2406,8 @@
<t>
The annotation result of this keyword is the set of instance
property names matched by this keyword.
This annotation affects the behavior of "additionalProperties" (in this
vocabulary) and "unevaluatedProperties" (in the Unevaluated vocabulary).
</t>
<t>
Omitting this keyword has the same assertion behavior as
Expand All @@ -2422,6 +2434,8 @@
<t>
The annotation result of this keyword is the set of instance
property names validated by this keyword's subschema.
This annotation affects the behavior of "unevaluatedProperties"
in the Unevaluated vocabulary.
</t>
<t>
Omitting this keyword has the same assertion behavior as
Expand Down Expand Up @@ -2552,6 +2566,7 @@
positions within the instance array, it produces an
annotation result of boolean true, analogous to the
behavior of "items".
This annotation affects the behavior of "unevaluatedItems" in parent schemas.
</t>
<t>
Omitting this keyword has the same assertion behavior as
Expand Down Expand Up @@ -2595,6 +2610,7 @@
<t>
The annotation result of this keyword is the set of instance
property names validated by this keyword's subschema.
This annotation affects the behavior of "unevaluatedProperties" in parent schemas.
</t>
<t>
Omitting this keyword has the same assertion behavior as
Expand Down Expand Up @@ -3839,8 +3855,8 @@ https://example.com/schemas/common#/$defs/count/minimum
<t>"$schema" MAY change for embedded resources</t>
<t>Array-value "items" functionality is now "prefixItems"</t>
<t>"items" subsumes the old function of "additionalItems"</t>
<t>"contains" and "unevaluatedItems" interactions now specified</t>
<t>Rename $recursive* to $dynamic*</t>
<t>"contains" annotation behavior, and "contains" and "unevaluatedItems" interactions now specified</t>
<t>Rename $recursive* to $dynamic*, with behavior modification</t>
<t>$dynamicAnchor defines a fragment like $anchor</t>
<t>$dynamic* (previously $recursive) no longer use runtime base URI determination</t>
<t>Define Compound Schema Documents (bundle) and processing</t>
Expand Down
23 changes: 14 additions & 9 deletions jsonschema-validation.xml
Original file line number Diff line number Diff line change
Expand Up @@ -442,8 +442,9 @@
</t>
<t>
A value of 0 is allowed, but is only useful for setting a range
of occurrences from 0 to the value of "maxContains". A value of
0 with no "maxContains" causes "contains" to always pass validation.
of occurrences from 0 to the value of "maxContains". A value of
0 causes "minContains" to always pass validation (but validation can
still fail against a "maxContains" keyword).
</t>
<t>
Omitting this keyword has the same behavior as a value of 1.
Expand Down Expand Up @@ -704,30 +705,34 @@
<list style="hanging">
<t hangText="date-time:">
A string instance is valid against this attribute if it is
a valid representation according to the "date-time" production.
a valid representation according to the "date-time' ABNF rule
(referenced above)
</t>
<t hangText="date:">
A string instance is valid against this attribute if it is
a valid representation according to the "full-date" production.
a valid representation according to the "full-date" ABNF rule
(referenced above)
</t>
<t hangText="time:">
A string instance is valid against this attribute if it is
a valid representation according to the "full-time" production.
a valid representation according to the "full-time" ABNF rule
(referenced above)
</t>
<t hangText="duration:">
A string instance is valid against this attribute if it is
a valid representation according to the "duration" production.
a valid representation according to the "duration" ABNF rule
(referenced above)
</t>
</list>
</t>
<t>
Implementations MAY support additional attributes using the other
production names defined anywhere in that RFC. If "full-date" or "full-time"
format names defined anywhere in that RFC. If "full-date" or "full-time"
are implemented, the corresponding short form ("date" or "time"
respectively) MUST be implemented, and MUST behave identically.
Implementations SHOULD NOT define extension attributes
with any name matching an RFC 3339 production unless it validates
according to the rules of that production.
with any name matching an RFC 3339 format unless it validates
according to the rules of that format.
<cref>
There is not currently consensus on the need for supporting
all RFC 3339 formats, so this approach of reserving the
Expand Down