# JsonXema
[![ version](](
[![GitHub: CI status](](
[![Coveralls: coverage](](
[![License: MIT](](

JsonXema is a [JSON Schema]( validator with support
for draft 04, 06, and 07.

JsonXema based on elixir schema validator

JsonXema is in early beta. If you try it and has an issue, report them.

## Installation

If [available in Hex](, the package can be installed
like this:

First, add JsonXema to your `mix.exs` dependencies:

def deps do
    {:json_xema, "~> 0.3"}

Then, update your dependencies:

$ mix deps.get

## Docs

The docs contains a [Usage]( page with a
short and compact description to use `JsonXema`.

A loader must be configured to support remote schemas. The documentation
contains a description on page
[Configure a loader](

Documentation can be generated with
[ExDoc]( by running `mix docs`. The
generated docs can be found at

## Tests

Tests in [test/json_xema](test/json_xema) are not organised as classic unit
tests but are related to JSON schema keywords or a specific feature.

The directory [test/suite](test/suite) contains tests for draft 04, 06, and 07
and are generated from the
[Json Schema Test Suite](

## Benchmark

A benchmark test can be started with `mix bench`. More about the benchmark can
be found at [bench](bench).

## References

The home of JSON Schema:


* Draft-04
  * [JSON Schema core](
defines the basic foundation of JSON Schema
  * [JSON Schema Validation](
defines the validation keywords of JSON Schema
* Draft-06
  * [JSON Schema core](
  * [JSON Schema Validation](
  * [JSON Schema Release Notes](
contains informations to migrate schemas.
* Draft-07
  * [JSON Schema core](
  * [JSON Schema Validation](
  * [JSON Schema Release Notes](

[Understanding JSON Schema](
a great tutorial for JSON Schema authors.