JSON Schema specifies a JSON-based format to define the structure of JSON data for validation, documentation, and interaction control. A JSON Schema provides a contract for the JSON data required by a given application, and how that data can be modified.

JSON Schema is based on the concepts from XML Schema (XSD), but it is JSON-based. The JSON data schema can be used to validate JSON data. The schema is self-describing.

More information can be found on http://json-schema.org/

JSON Schema holds a central place in the strategy to model NoSQL document schemas with Hackolade.  But Hackolade needs to take some liberties with the JSON Schema draft v4 specification.  One of them, is to expand the list of field types to include additional BSON types (see BSON Spec) for the specific needs of MongoDB.  Additional fields in the JSON Schema syntax have been added so as to support the persistence of Hackolade data in a JSON repository. Finally, some concepts supported by MongoDB are not supported by JSON Schema, but had to be taken into account.  As a result, draft v4 validation has been extended for the specific needs of Hackolade.