From f0eca1cdad9d153cabfdb734bd58968537719b61 Mon Sep 17 00:00:00 2001 From: "Henry H. Andrews" Date: Sat, 24 Sep 2022 13:18:42 -0700 Subject: [PATCH 1/2] Remove annotation-applicator interaction section The idea of annotations and applicators interacting is outdated. Annotation deletion/dropping occurs at the schema object level (clarified in recent drafts), and annotation values have not defined aggregation semantics within JSON Schema evaluation since draft-07. --- jsonschema-core.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/jsonschema-core.xml b/jsonschema-core.xml index 5a078dc4..b7e6fcff 100644 --- a/jsonschema-core.xml +++ b/jsonschema-core.xml @@ -1093,13 +1093,6 @@ is kept, as the instance passes the string type assertions. -
- - In addition to possibly defining annotation results of their own, - applicator keywords aggregate the annotations collected in their - subschema(s) or referenced schema(s). - -
From b83e0925d7a30d2e558421da707b84e9b0e7e835 Mon Sep 17 00:00:00 2001 From: "Henry H. Andrews" Date: Sat, 15 Oct 2022 17:08:48 -0700 Subject: [PATCH 2/2] Further improve applicator interaction language There were more places where some interaction between applicators and annoations were implied. This fixes thos. --- jsonschema-core.xml | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/jsonschema-core.xml b/jsonschema-core.xml index b7e6fcff..4802e29d 100644 --- a/jsonschema-core.xml +++ b/jsonschema-core.xml @@ -655,8 +655,12 @@ Typically, applicator keywords are processed until a schema object with no applicators (and therefore no subschemas) is reached. The appropriate location in the instance is evaluated against the assertion and - annotation keywords in the schema object, and their results are gathered - into the parent schema according to the rules of the applicator. + annotation keywords in the schema object. The interactions of those + keyword results to produce the schema object results are governed by + section , while the + relationship of subschema results to the results of the applicator + keyword that applied them is described by section + . Evaluation of a parent schema object can complete once all of its @@ -811,10 +815,11 @@ assertion conditions of their own. - Annotation results are - preserved along with the instance location and the location of - the schema keyword, so that applications can decide how to - interpret multiple values. + Annotation results from subschemas + are preserved in accordance with section + so that applications + can decide how to interpret multiple values. Applicator keywords + do not play a direct role in this preservation.
@@ -935,7 +940,7 @@ for failing schemas. -
+
Annotations are collected by keywords that explicitly define annotation-collecting behavior. Note that boolean schemas cannot @@ -1058,7 +1063,7 @@ schema locations.
-
+
Schema objects that produce a false assertion result MUST NOT produce any annotation results, whether from their own keywords