Skip to content

Commit 92b7860

Browse files
committed
define multiple mechanisms
1 parent d92e92a commit 92b7860

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

jsonschema-core.md

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -523,25 +523,29 @@ to inform the user of the evaluation path that produced the error or annotation.
523523

524524
### Keyword Interactions
525525

526-
Keywords MAY modify their behavior based on the presence, absence, or value of
527-
another keyword in the same [schema object](#schema-document). Such keywords
528-
MUST NOT result in a circular dependency.
529-
530526
Unless otherwise specified, keywords act independently.
531527

532-
Supplementary specifications are encouraged to specify any interactive behavior as part of the keyword whose behavior is modified.
533-
534-
#### Annotations as an Interaction Mechanism
535-
536-
This document uses annotations as a mechanism to describe the interactions
537-
between keywords, however this is for illustrative purposes and not
538-
prescriptive. Implementations MAY use whatever mechanisms makes sense given
539-
their architecture and language needs in order to achieve the specified
540-
behaviors. Implementations are not required to collect annotations in order to
541-
manage keyword interaction.
542-
543-
Supplementary specifications are also encouraged to use annotations to describe
544-
any interactions of the keywords they define.
528+
Keywords MAY modify their behavior based on the presence, absence, or value of
529+
another keyword in the same schema object. Such keywords MUST NOT result in a
530+
circular dependency.
531+
532+
Supplementary specifications are encouraged to specify any dependencies as part
533+
of the dependent keyword (i.e. the keyword whose behavior is modified).
534+
535+
Within this document, keyword dependencies are expressed using one of the
536+
following mechanics:
537+
538+
- Static dependencies, in which the dependency relies on the presence or
539+
contents of another keyword.
540+
- Dynamic dependencies, in which the dependency relies on the evaluation of
541+
another keyword against an instance. This dependency may be on either the
542+
annotations produced by the keyword or the validation result of its
543+
subschema(s).
544+
545+
These mechanics are used merely to describe dependencies; they are for
546+
illustrative purposes and not prescriptive. Implementations MAY use whatever
547+
mechanisms makes sense given the needs of their architecture and language in
548+
order to achieve the specified behaviors.
545549

546550
### Default Behaviors {#default-behaviors}
547551

0 commit comments

Comments
 (0)