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 GenericValue< EncodingType, Allocator > | URIType |
typedef ValueT | ValueType |
Public Member Functions | |
GenericSchemaDocument (const ValueType &document, const Ch *uri=0, SizeType uriLength=0, IRemoteSchemaDocumentProviderType *remoteProvider=0, Allocator *allocator=0) | |
Constructor. More... | |
const SchemaType & | GetRoot () const |
Get the root schema. More... | |
const URIType & | GetURI () const |
~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_ |
URIType | uri_ |
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 GenericValue<EncodingType, Allocator> GenericSchemaDocument< ValueT, Allocator >::URIType |
typedef ValueT GenericSchemaDocument< ValueT, Allocator >::ValueType |
|
inlineexplicit |
Constructor.
Compile a JSON document into schema document.
document | A JSON document as source. |
uri | The base URI of this schema document for purposes of violation reporting. |
uriLength | Length of name , in code points. |
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 |
|
inline |
|
inlineprivate |
|
private |
Prohibit assignment.
|
friend |
|
friend |
|
private |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |