I\'m using JSON Schema for validating data.
I think that I may have a mistake on my schema by using the reserved keywords $id. The intention of this field was to des
Since $id changes the base URI of your schema, any $ref values in that same schema or any of its subschemas will be resolved differently.
For instance, if your base URI was "https://example.com/thing" and you had this schema
{
"allOf": [
{"$ref": "foo"},
{
"$id": "stuff/and/nonsense",
"allOf": {"$ref": "bar"}
}
]
}
then the "$ref" to "foo" resolves to "https://example.com/foo". But the "$ref" to "bar" resolves to "https://example.com/stuff/and/bar"
So whatever you put in "$id" for another purpose, it is likely to cause problems, particularly with "$ref" resolution.
$id is a reserved keyword.
It serves for:
You can identify a schema, or a part of your schema (a subschema) by using $id, and then you can reuse it somewhere else by using the $ref keyword. The most simple way of seeing this, is that the $ref would be replaced by the schema with the corresponding id.