RapidJSON: rapidjson::GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator > Class Template Reference

Public Types | Public Member Functions | List of all members
rapidjson::GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator > Class Template Reference

JSON Schema Validator. More...

`#include <schema.h>`

## Public Types
typedef SchemaDocumentType::SchemaType | SchemaType
typedef SchemaDocumentType::PointerType | PointerType
typedef SchemaType::EncodingType | EncodingType
typedef SchemaType::SValue | SValue
typedef EncodingType::Ch | Ch
typedef GenericStringRef< Ch > | StringRefType
typedef GenericValue< EncodingType, StateAllocator > | ValueType

## Public Member Functions
| GenericSchemaValidator (const SchemaDocumentType &schemaDocument, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)
| Constructor without output handler. More...
| GenericSchemaValidator (const SchemaDocumentType &schemaDocument, OutputHandler &outputHandler, StateAllocator *allocator=0, size_t schemaStackCapacity=kDefaultSchemaStackCapacity, size_t documentStackCapacity=kDefaultDocumentStackCapacity)
| Constructor with output handler. More...
| ~GenericSchemaValidator ()
| Destructor.
void | Reset ()
| Reset the internal states.
virtual bool | IsValid () const
| Checks whether the current state is valid.
ValueType & | GetError ()
| Gets the error object.
const ValueType & | GetError () const
PointerType | GetInvalidSchemaPointer () const
| Gets the JSON pointer pointed to the invalid schema.
const Ch * | GetInvalidSchemaKeyword () const
| Gets the keyword of invalid schema.
PointerType | GetInvalidDocumentPointer () const
| Gets the JSON pointer pointed to the invalid value.
void | NotMultipleOf (int64_t actual, const SValue &expected)
void | NotMultipleOf (uint64_t actual, const SValue &expected)
void | NotMultipleOf (double actual, const SValue &expected)
void | AboveMaximum (int64_t actual, const SValue &expected, bool exclusive)
void | AboveMaximum (uint64_t actual, const SValue &expected, bool exclusive)
void | AboveMaximum (double actual, const SValue &expected, bool exclusive)
void | BelowMinimum (int64_t actual, const SValue &expected, bool exclusive)
void | BelowMinimum (uint64_t actual, const SValue &expected, bool exclusive)
void | BelowMinimum (double actual, const SValue &expected, bool exclusive)
void | TooLong (const Ch *str, SizeType length, SizeType expected)
void | TooShort (const Ch *str, SizeType length, SizeType expected)
void | DoesNotMatch (const Ch *str, SizeType length)
void | DisallowedItem (SizeType index)
void | TooFewItems (SizeType actualCount, SizeType expectedCount)
void | TooManyItems (SizeType actualCount, SizeType expectedCount)
void | DuplicateItems (SizeType index1, SizeType index2)
void | TooManyProperties (SizeType actualCount, SizeType expectedCount)
void | TooFewProperties (SizeType actualCount, SizeType expectedCount)
void | StartMissingProperties ()
void | AddMissingProperty (const SValue &name)
bool | EndMissingProperties ()
void | PropertyViolations (ISchemaValidator **subvalidators, SizeType count)
void | DisallowedProperty (const Ch *name, SizeType length)
void | StartDependencyErrors ()
void | StartMissingDependentProperties ()
void | AddMissingDependentProperty (const SValue &targetName)
void | EndMissingDependentProperties (const SValue &sourceName)
void | AddDependencySchemaError (const SValue &sourceName, ISchemaValidator *subvalidator)
bool | EndDependencyErrors ()
void | DisallowedValue ()
void | StartDisallowedType ()
void | AddExpectedType (const typename SchemaType::ValueType &expectedType)
void | EndDisallowedType (const typename SchemaType::ValueType &actualType)
void | NotAllOf (ISchemaValidator **subvalidators, SizeType count)
void | NoneOf (ISchemaValidator **subvalidators, SizeType count)
void | NotOneOf (ISchemaValidator **subvalidators, SizeType count)
void | Disallowed ()
bool | Null ()
bool | Bool (bool b)
bool | Int (int i)
bool | Uint (unsigned u)
bool | Int64 (int64_t i)
bool | Uint64 (uint64_t u)
bool | Double (double d)
bool | RawNumber (const Ch *str, SizeType length, bool copy)
bool | String (const Ch *str, SizeType length, bool copy)
bool | StartObject ()
bool | Key (const Ch *str, SizeType len, bool copy)
bool | EndObject (SizeType memberCount)
bool | StartArray ()
bool | EndArray (SizeType elementCount)
virtual ISchemaValidator * | CreateSchemaValidator (const SchemaType &root)
virtual void | DestroySchemaValidator (ISchemaValidator *validator)
virtual void * | CreateHasher ()
virtual uint64_t | GetHashCode (void *hasher)
virtual void | DestroryHasher (void *hasher)
virtual void * | MallocState (size_t size)
virtual void | FreeState (void *p)

## Detailed Description

### template<typename SchemaDocumentType, typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>
class rapidjson::GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >

JSON Schema Validator.

A SAX style JSON schema validator. It uses a `GenericSchemaDocument` to validate SAX events. It delegates the incoming SAX events to an output handler. The default output handler does nothing. It can be reused multiple times by calling `Reset()`.

Template Parameters

  SchemaDocumentType | Type of schema document.
  OutputHandler | Type of output handler. Default handler does nothing.
  StateAllocator | Allocator for storing the internal validation states.

## Constructor & Destructor Documentation

## ◆ GenericSchemaValidator() [1/2]

template<typename SchemaDocumentType , typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>

rapidjson::GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GenericSchemaValidator | ( | const SchemaDocumentType & | schemaDocument,
|  | StateAllocator * | allocator = `0`,
|  | size_t | schemaStackCapacity = `kDefaultSchemaStackCapacity`,
|  | size_t | documentStackCapacity = `kDefaultDocumentStackCapacity`
| ) |  |
| inline

Constructor without output handler.

Parameters

  schemaDocument | The schema document to conform to.
  allocator | Optional allocator for storing internal validation states.
  schemaStackCapacity | Optional initial capacity of schema path stack.
  documentStackCapacity | Optional initial capacity of document path stack.

## ◆ GenericSchemaValidator() [2/2]

template<typename SchemaDocumentType , typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>, typename StateAllocator = CrtAllocator>

rapidjson::GenericSchemaValidator< SchemaDocumentType, OutputHandler, StateAllocator >::GenericSchemaValidator | ( | const SchemaDocumentType & | schemaDocument,
|  | OutputHandler & | outputHandler,
|  | StateAllocator * | allocator = `0`,
|  | size_t | schemaStackCapacity = `kDefaultSchemaStackCapacity`,
|  | size_t | documentStackCapacity = `kDefaultDocumentStackCapacity`
| ) |  |
| inline

Constructor with output handler.

Parameters

  schemaDocument | The schema document to conform to.
  allocator | Optional allocator for storing internal validation states.
  schemaStackCapacity | Optional initial capacity of schema path stack.
  documentStackCapacity | Optional initial capacity of document path stack.

The documentation for this class was generated from the following files:

- include/rapidjson/fwd.h
- include/rapidjson/schema.h