Skip to content

Commit 0c33be4

Browse files
committed
Add discussion of loading/evaluation outcomes
1 parent 9f4a0f8 commit 0c33be4

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

jsonschema-core.xml

+40
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,46 @@
594594
</t>
595595
</section>
596596

597+
<section title="Evaluation Results">
598+
<t>
599+
Evaluating an instance against a schema MUST produce one of four general outcomes:
600+
601+
<list>
602+
<t>
603+
success: the evaluation completed without failing any validation assertions
604+
</t>
605+
<t>
606+
failure: the evaluation completed with assertion failures
607+
</t>
608+
<t>
609+
runtime error: the schema was understood but the evaluation could not
610+
complete
611+
</t>
612+
<t>
613+
refusal to process: the schema was not understood and evaluation never began
614+
</t>
615+
</list>
616+
</t>
617+
<t>
618+
Runtime errors include but are not limited to: failure of reference resolution,
619+
detection of an infinite reference loop, or excessive consumption of memory.
620+
</t>
621+
<t>
622+
Implementations MAY detect certain refusal-to-process conditions when a schema is
623+
loaded, prior to attempting any evaluation. For example, a schema that requires
624+
a vocabulary that the implementation does not support cannot be processed
625+
regardless of the instance.
626+
</t>
627+
<t>
628+
Some conditions can manifest as either runtime or refusal-to-process outcomes.
629+
For example, a reference to a non-existent location within a schema resource can
630+
be detected at schema load time, but a reference to a non-existent external schema
631+
might not be detected until runtime as that reference target schema might
632+
be provided between the loading of the reference source schema and the first
633+
attempted evaluation with an instance.
634+
</t>
635+
</section>
636+
597637
<section title="Extending JSON Schema" anchor="extending">
598638
<t>
599639
Additional schema keywords and schema vocabularies MAY be defined

0 commit comments

Comments
 (0)