@@ -906,14 +906,14 @@ to establish a base IRI in order to resolve the reference.
906
906
907
907
#### The ` $id ` Keyword {#id-keyword}
908
908
909
- The ` $id ` keyword identifies a schema resource. The value for this keyword MUST
910
- be a string, and MUST represent a valid [ IRI reference ] ( #rfc3987 ) without a
911
- fragment.
909
+ An ` $id ` keyword in a schema or subschema identifies that schema or subschema as
910
+ a distinct schema resource. The value for this keyword MUST be a string, and
911
+ MUST represent a valid [ IRI reference ] ( #rfc3987 ) without a fragment.
912
912
913
913
When the value of this keyword is resolved against the current base IRI, the
914
914
resulting absolute IRI then serves as the identifier for the schema resource and
915
915
as a base IRI for relative IRI references in keywords within that schema
916
- resource and for nested schema resources, in accordance with [ RFC 3987 section
916
+ resource and for embedded schema resources, in accordance with [ RFC 3987 section
917
917
6.5] ( #rfc3987 ) and [ RFC 3986 section 5.1.1] ( #rfc3986 ) regarding base IRIs
918
918
embedded in content.
919
919
@@ -1370,20 +1370,15 @@ recursive nesting like this; the behavior is undefined.
1370
1370
#### References to Possible Non-Schemas {#non-schemas}
1371
1371
1372
1372
Subschema objects (or booleans) are recognized by their use with known
1373
- applicator keywords or with location-reserving keywords such as
1374
- [ ` $defs ` ] ( #defs ) that take one or more subschemas as a value. These keywords may
1375
- be ` $defs ` and the standard applicators from this document or
1376
- implementation-specific custom keywords.
1377
-
1378
- Note that single-level custom keywords with identical syntax and semantics to
1379
- ` $defs ` do not allow for any intervening ` $id ` keywords, and therefore will
1380
- behave correctly under implementations that attempt to use any reference target
1381
- as a schema. However, this behavior is implementation-specific and MUST NOT be
1382
- relied upon for interoperability.
1383
-
1384
- A reference target under a keyword for which the value is known not to be a
1385
- schema results in undefined behavior in order to avoid burdening implementations
1386
- with the need to detect such targets.[ ^ 10 ]
1373
+ applicator keywords or with location-reserving keywords, such as
1374
+ [ ` $defs ` ] ( #defs ) , that take one or more subschemas as a value. These keywords
1375
+ include the standard applicators from this document or implementation-specific
1376
+ custom keywords.
1377
+
1378
+ A reference target under a keyword for which the value is not explicitly known
1379
+ to be a schema results in undefined behavior. Implementations MAY support
1380
+ references to these locations, however such behavior is not considered
1381
+ interoperable and should not be relied upon.[ ^ 10 ]
1387
1382
1388
1383
[ ^ 10 ] : These scenarios are analogous to fetching a schema over HTTP but
1389
1384
receiving a response with a Content-Type other than ` application/schema+json ` .
0 commit comments