2
3
4
5
6
7
8
9#ifndef NLOHMANN_JSON_SCHEMA_HPP__
10#define NLOHMANN_JSON_SCHEMA_HPP__
13# if defined(JSON_SCHEMA_VALIDATOR_EXPORTS)
14# define JSON_SCHEMA_VALIDATOR_API __declspec(dllexport)
15# elif defined(JSON_SCHEMA_VALIDATOR_IMPORTS)
16# define JSON_SCHEMA_VALIDATOR_API __declspec(dllimport)
18# define JSON_SCHEMA_VALIDATOR_API
21# define JSON_SCHEMA_VALIDATOR_API
24#include <nlohmann/json.hpp>
26#ifdef NLOHMANN_JSON_VERSION_MAJOR
27# if (NLOHMANN_JSON_VERSION_MAJOR
* 10000
+ NLOHMANN_JSON_VERSION_MINOR
* 100
+ NLOHMANN_JSON_VERSION_PATCH
) < 30800
28# error "Please use this library with NLohmann's JSON version 3.8.0 or higher"
31# error "expected existing NLOHMANN_JSON_VERSION_MAJOR preproc variable, please update to NLohmann's JSON 3.8.0"
60 void update(
const std::string &uri);
62 std::tuple<std::string, std::string, std::string, std::string, std::string>
as_tuple()
const
91 static std::string
escape(
const std::string &);
105 if (identifier_ !=
"")
125 friend std::ostream &operator<<(std::ostream &os,
const json_uri &u);
134typedef std::function<
void(
const std::string & ,
const std::string & )>
format_checker;
135typedef std::function<
void(
const std::string & ,
const std::string & ,
const json & )>
content_checker;
142 virtual void error(
const json::json_pointer & ,
const json & ,
const std::string & ) = 0;
150 void error(
const json::json_pointer & ,
const json & ,
const std::string & )
override
160
161
void error(const json::json_pointer &, const json &, const std::string &) override
virtual void error(const json::json_pointer &, const json &, const std::string &)=0
json_validator & operator=(json_validator const &)=delete
void set_root_schema(const json &)
void set_root_schema(json &&)
json_validator(json_validator &&)
std::unique_ptr< root_schema > root_
json_validator & operator=(json_validator &&)
json_validator(json &&, schema_loader=nullptr, format_checker=nullptr, content_checker=nullptr)
json_validator(schema_loader=nullptr, format_checker=nullptr, content_checker=nullptr)
json_validator(const json &, schema_loader=nullptr, format_checker=nullptr, content_checker=nullptr)
json_validator(json_validator const &)=delete
json validate(const json &, error_handler &, const json_uri &initial_uri=json_uri("#")) const
json validate(const json &) const
const std::string & identifier() const
std::string fragment() const
std::string to_string() const
friend bool operator==(const json_uri &l, const json_uri &r)
const std::string & authority() const
std::string location() const
void update(const std::string &uri)
json_uri(const std::string &uri)
static std::string escape(const std::string &)
friend bool operator<(const json_uri &l, const json_uri &r)
const std::string & scheme() const
const std::string & path() const
const json::json_pointer & pointer() const
json_uri derive(const std::string &uri) const
json::json_pointer pointer_
std::tuple< std::string, std::string, std::string, std::string, std::string > as_tuple() const
json_uri append(const std::string &field) const
#define JSON_SCHEMA_VALIDATOR_API
std::function< void(const json_uri &, json &)> schema_loader
std::function< void(const std::string &, const std::string &)> format_checker
void default_string_format_check(const std::string &format, const std::string &value)
json draft7_schema_builtin
std::function< void(const std::string &, const std::string &, const json &)> content_checker