JSON schema document. More...
#include <fwd.h>
Classes | |
| struct | SchemaEntry |
| struct | SchemaRefEntry |
Public Types | |
| typedef Allocator | AllocatorType |
| typedef EncodingType::Ch | Ch |
| typedef ValueType::EncodingType | EncodingType |
| typedef IGenericRemoteSchemaDocumentProvider< GenericSchemaDocument > | IRemoteSchemaDocumentProviderType |
| typedef GenericPointer< ValueType, Allocator > | PointerType |
| typedef internal::Schema< GenericSchemaDocument > | SchemaType |
| typedef ValueT | ValueType |
Public Member Functions | |
| GenericSchemaDocument (const ValueType &document, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0) | |
| Constructor. More... | |
| const SchemaType & | GetRoot () const |
| Get the root schema. More... | |
| ~GenericSchemaDocument () | |
| Destructor. More... | |
Private Member Functions | |
| void | CreateSchema (const SchemaType **schema, const PointerType &pointer, const ValueType &v, const ValueType &document) |
| void | CreateSchemaRecursive (const SchemaType **schema, const PointerType &pointer, const ValueType &v, const ValueType &document) |
| GenericSchemaDocument (const GenericSchemaDocument &) | |
| Prohibit copying. More... | |
| PointerType | GetPointer (const SchemaType *schema) const |
| const SchemaType * | GetSchema (const PointerType &pointer) const |
| const SchemaType * | GetTypeless () const |
| bool | HandleRefSchema (const PointerType &source, const SchemaType **schema, const ValueType &v, const ValueType &document) |
| GenericSchemaDocument & | operator= (const GenericSchemaDocument &) |
| Prohibit assignment. More... | |
Private Attributes | |
| Allocator * | allocator_ |
| Allocator * | ownAllocator_ |
| IRemoteSchemaDocumentProviderType * | remoteProvider_ |
| const SchemaType * | root_ |
| Root schema. More... | |
| internal::Stack< Allocator > | schemaMap_ |
| internal::Stack< Allocator > | schemaRef_ |
| SchemaType * | typeless_ |
Static Private Attributes | |
| static const size_t | kInitialSchemaMapSize = 64 |
| static const size_t | kInitialSchemaRefSize = 64 |
Friends | |
| template<typename , typename , typename > | |
| class | GenericSchemaValidator |
| class | internal::Schema< GenericSchemaDocument > |
JSON schema document.
A JSON schema document is a compiled version of a JSON schema. It is basically a tree of internal::Schema.
| ValueT | Type of JSON value (e.g. Value ), which also determine the encoding. |
| Allocator | Allocator type for allocating memory of this document. |
| typedef Allocator GenericSchemaDocument< ValueT, Allocator >::AllocatorType |
| typedef EncodingType::Ch GenericSchemaDocument< ValueT, Allocator >::Ch |
| typedef ValueType::EncodingType GenericSchemaDocument< ValueT, Allocator >::EncodingType |
| typedef IGenericRemoteSchemaDocumentProvider<GenericSchemaDocument> GenericSchemaDocument< ValueT, Allocator >::IRemoteSchemaDocumentProviderType |
| typedef GenericPointer<ValueType, Allocator> GenericSchemaDocument< ValueT, Allocator >::PointerType |
| typedef internal::Schema<GenericSchemaDocument> GenericSchemaDocument< ValueT, Allocator >::SchemaType |
| typedef ValueT GenericSchemaDocument< ValueT, Allocator >::ValueType |
|
inlineexplicit |
Constructor.
Compile a JSON document into schema document.
| document | A JSON document as source. |
| remoteProvider | An optional remote schema document provider for resolving remote reference. Can be null. |
| allocator | An optional allocator instance for allocating memory. Can be null. |
|
inline |
|
private |
Prohibit copying.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inline |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
private |
Prohibit assignment.
|
friend |
|
friend |
|
private |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |