# `ExJsonSchema.Validator`
[🔗](https://github.com/jonasschmidt/ex_json_schema/blob/v0.11.5/lib/ex_json_schema/validator.ex#L1)

# `errors`

```elixir
@type errors() ::
  [%ExJsonSchema.Validator.Error{error: term(), path: term()}] | list()
```

# `options`

```elixir
@type options() :: [{:error_formatter, module() | false}]
```

# `validate`

```elixir
@callback validate(
  ExJsonSchema.Schema.Root.t(),
  ExJsonSchema.data(),
  {String.t(), ExJsonSchema.data()},
  ExJsonSchema.data(),
  ExJsonSchema.json_path()
) :: errors()
```

# `do_validation_errors`

# `map_to_invalid_errors`

# `valid?`

```elixir
@spec valid?(
  ExJsonSchema.Schema.Root.t() | ExJsonSchema.object(),
  ExJsonSchema.data()
) ::
  boolean() | no_return()
```

# `valid_fragment?`

```elixir
@spec valid_fragment?(
  ExJsonSchema.Schema.Root.t(),
  ExJsonSchema.json_path() | ExJsonSchema.Schema.resolved(),
  ExJsonSchema.data()
) :: boolean() | ExJsonSchema.Schema.invalid_reference_error() | no_return()
```

# `validate`

# `validate_fragment`

```elixir
@spec validate_fragment(
  ExJsonSchema.Schema.Root.t(),
  ExJsonSchema.json_path() | ExJsonSchema.Schema.resolved(),
  ExJsonSchema.data(),
  options()
) ::
  :ok
  | {:error, errors()}
  | ExJsonSchema.Schema.invalid_reference_error()
  | no_return()
```

# `validation_errors`

```elixir
@spec validation_errors(
  ExJsonSchema.Schema.Root.t(),
  ExJsonSchema.json_path() | ExJsonSchema.Schema.resolved(),
  ExJsonSchema.data(),
  String.t()
) :: errors() | ExJsonSchema.Schema.invalid_reference_error() | no_return()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
