JSON::Schema::Modern::Vocabulary - Base role for JSON Schema vocabulary classes
This package is the role which all all vocabulary classes for JSON::Schema::Modern must compose, describing the basic structure expected of a vocabulary class.
Returns the canonical URI(s) describing the vocabulary for each draft specification version, as described in JSON Schema Core Meta-specification, section 8.1.2. Must be implemented by the composing class.
Returns a positive integer, used as a sort key for determining the evaluation order of this vocabulary. If not overridden in a custom vocabulary class, its evaluation order will be after all built-in vocabularies. You probably don't need to define this.
Returns the list of keywords defined by the vocabulary. Must be implemented by the composing class.
Traverses a subschema. Callers are expected to establish a new $state scope.
Recursively traverses the schema at the current keyword, as in the not keyword.
Recursively traverses the list of subschemas at the current keyword, as in the allOf keyword.
Recursively traverses the (subschema) values of the object at the current keyword, as in the $defs keyword.
Recursively traverses the subschema under one property of the object at the current keyword.
Evaluates a subschema. Callers are expected to establish a new $state scope.
Resolves a URI to a subschema, then evaluates that subschema (essentially the $ref keyword).
Bugs may be submitted through https://github.com/karenetheridge/JSON-Schema-Modern/issues.
I am also usually active on irc, as 'ether' at irc.perl.org and irc.libera.chat.
You can also find me on the JSON Schema Slack server and OpenAPI Slack server, which are also great resources for finding help.
Karen Etheridge <email@example.com>
This software is copyright (c) 2020 by Karen Etheridge.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install JSON::Schema::Modern, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell
For more information on module installation, please visit the detailed CPAN module installation guide.