Skip to content

$vocabulary:{<vocab>:false} when a vocab is recognized is not defined #1019

Closed
@gregsdennis

Description

@gregsdennis

The spec states

If the value is true, then implementations that do not recognize the vocabulary MUST refuse to process any schemas that declare this meta-schema with "$schema". If the value is false, implementations that do not recognize the vocabulary SHOULD proceed with processing such schemas.

This doesn't say what the behavior is when the value is false and the implementation does recognize the vocabulary. The implication is that keywords defined by such vocabularies should still be processed.

@karenetheridge disagrees with this implication in that she interprets this as having the vocab configured as false means that the vocab's keywords can be entirely skipped (collected as annotations) even when the vocab is known.

It should be explicitly stated.


I had extensive DM conversations around this keyword with @handrews when he was first defining it for 2019-09 (sadly those are now lost to the Free Slack Aether). This wasn't a special case for format. The intent is to process the keywords if the vocab is known, regardless of the value. Having <vocab>: false simply means that knowledge of the vocab doesn't preclude the processability of a schema.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions