Provided by: pkwalify_1.23-3_all bug

NAME

       Kwalify - Kwalify schema for data structures

SYNOPSIS

         use Kwalify qw(validate);
         validate($schema, $data);

       Typically used together with YAML or JSON:

         use YAML;
         validate(YAML::LoadFile($schema_file), YAML::LoadFile($data_file));

         use JSON;
         validate(decode_json($schema_data), decode_json($data));

DESCRIPTION

       Kwalify is a Perl implementation for validating data structures against the Kwalify schema. For a schema
       definition, see <http://www.kuwata-lab.com/kwalify/ruby/users-guide.01.html>, but see also below "SCHEMA
       DEFINITION".

   validate($schema_data, $data)
       Validate $data according to Kwalify schema specified in $schema_data. Dies if the validation fails.

       validate may be exported.

SCHEMA DEFINITION

       The original schema definition document is not very specific about types and behaviour. Here's how
       Kwalify.pm implements things:

       pattern
           Perl  regular expressions are used for patterns. This may or may not be compatible with other Kwalify
           validators, so restrict to "simple"  regular  expression  constructs  to  be  compatible  with  other
           validators.

       type
           str Any defined value which is not a number. Most probably you will want to use text instead of str.

           int A  possibly  signed  integer.  Note that scientific notation is not supported, and it is also not
               clear whether it should be supported.

           float
               A possibly signed floating value with a mandatory decimal point. Note that scientific notation is
               also not supported here.

           bool
               The values yes, true, and 1 for true values and the values no, false, and 0 for false values  are
               allowed. The ruby implementation possibly allows more values, but this is not documented.

               Note  that  this  definition  is problematic, because for example the string no is a true boolean
               value in Perl. So one should stick to 0 and 1 as data values, and probably define  an  additional
               pattern or enum to ensure this:

                   type: bool
                   enum: [0, 1]

           scalar
               Currently the same as text, but it's not clear if this is correct.

           date
               A  string  matching "/^\d{4}-\d{2}-\d{2}$/" (i.e. YYYY-MM-DD). Note that no date range checks are
               done (yet).

           time
               A string matching "/^\d{2}:\d{2}:\d{2}$/" (i.e. HH:MM:SS). Note that no  time  range  checks  are
               done (yet).

           timestamp
               Not supported --- it is not clear what this is supposed to be.

       assert
           Currently not supported by the Perl implementation.

       classname
           Previously           defined           what           is           now           class,           see
           <http://web.archive.org/web/20071230173101/http://www.kuwata-lab.com/kwalify/users-guide.01.html>.

       class
           Currently not used, as there's no genclass action.

       default
           Currently not used, as there's no genclass action.

TECHNICAL NOTES

       As Kwalify.pm is a pure validator and de-coupled from a parser (in fact, it does not need  to  deal  with
       YAML  at  all,  but just with pure perl data structures), there's no connection to the original validated
       document. This means that no line numbers are available to the validator. In case  of  validation  errors
       the validator is only able to show a path-like expression to the data causing the error.

AUTHOR

       Slaven Rezić, <srezic@cpan.org>

COPYRIGHT AND LICENSE

       Copyright (C) 2006,2007,2008,2009,2010,2015 by Slaven Rezić

       This  library  is  free  software;  you can redistribute it and/or modify it under the same terms as Perl
       itself.

SEE ALSO

       pkwalify, kwalify(1).

       Other non-XML schema languages: <http://rx.codesimply.com/>

perl v5.36.0                                       2022-11-11                                       Kwalify(3pm)