# Xema
[![Build Status](](
[![Coverage Status](](
[![License: MIT](](

Xema is a schema validator inspired by [JSON Schema](
For now, Xema supports the features documented in draft 04, 06, and 07 of the
JSON-Schema specification.

Xema allows you to annotate and validate elixir data structures.

If you search for a real JSON Schema validator give
[JsonXema]( a try.

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

## Installation

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

def deps do
  [{:xema, "~> 0.9"}]

Then, update your dependencies:

$ mix deps.get

## Docs

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

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

## Changelog

Version 0.5.0 coming soon.

Since version 0.5.0 a [changelog]( is available.

To update to version 0.5.0 some migrations steps are required, see

In version 0.7.0 the behaviour `Xema.Resolver` was renamed to `Xema.Loader`.

## Tests

The test in the directory `xema/test/suite` are generated from the

## 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 and a template for the description of