@@ -523,25 +523,29 @@ to inform the user of the evaluation path that produced the error or annotation.
523
523
524
524
### Keyword Interactions
525
525
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
-
530
526
Unless otherwise specified, keywords act independently.
531
527
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.
545
549
546
550
### Default Behaviors {#default-behaviors}
547
551
0 commit comments