JSON::Schema::Modern::Vocabulary(3pm) | User Contributed Perl Documentation | JSON::Schema::Modern::Vocabulary(3pm) |
JSON::Schema::Modern::Vocabulary - Base role for JSON Schema vocabulary classes
version 0.582
package MyApp::Vocabulary::Awesome; use Moo::Role; with 'JSON::Schema::Modern::Vocabulary';
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 <https://json-schema.org/draft/2020-12/json-schema-core.html#rfc.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 <https://json-schema.slack.com> and OpenAPI Slack server <https://open-api.slack.com>, which are also great resources for finding help.
Karen Etheridge <ether@cpan.org>
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.
2024-03-20 | perl v5.38.2 |