json-schema icon indicating copy to clipboard operation
json-schema copied to clipboard

Support `data` instead of `$data`

Open gregsdennis opened this issue 3 years ago • 0 comments

Your implementation of the $data keyword results in invalid schemas (they fail validation against the meta-schema).

For example

{
  "type": "integer",
  "minimum": { "$data": "/minValue" }
}

violates that the value in minimum is supposed to be a number.

Please consider implementing my data vocabulary instead. It is fully compliant with drafts 6 and later. It's also more powerful in that it can reference data from the instance, from the schema, and from other external sources.

Edit I thought that it might be good to include what this would look like with data.

{
  "type": "integer",
  "data": {
    "minimum": "/minValue"
  }
}

This schema does pass meta-schema validation.

To reference other data sources, use:

  • plain JSON Pointers to reference instance data (as shown above)
  • URI-encoded JSON Pointers as fragment-only URIs to reference schema data (e.g. #/minValue, like what you might see in $ref)
  • full URIs, optionally with JSON Pointer fragments to reference other external data (e.g. https://example.com/data#/my/pointer)

gregsdennis avatar Sep 22 '22 19:09 gregsdennis