Draft 04 | Draft 06 | Draft 07 | Draft 2019-09 | Draft 2020-12 |
The "$recursiveRef" and "$recursiveAnchor" keywords are used to construct extensible recursive schemas. A recursive schema is one that has a reference to its own root, identified by the empty fragment URI reference ("#").
Simply stated, a "$recursiveRef" behaves identically to "$ref", except when its target schema contains "$recursiveAnchor" with a value of true. In that case, the dynamic scope is examined to determine a new base URI, and the URI-reference in "$recursiveRef" is re-evaluated against that base URI. Unlike base URI changes with "$id", changes with "$recursiveAnchor" are calculated each time a "$recursiveRef" is resolved, and do not impact any other keywords.
For an example using these keyword, see appendix C. [CREF10]
A short lived keyword! This was removed from the standard in 2020-12, and replaced with Dynamic Ref.