JSONSchex.Formats (jsonschex v0.6.0)

Copy Markdown View Source

Implements validation logic for the 'format' keyword.

Supported Formats

The following format values are supported when format_assertion: true is enabled:

  • Date/Time: date-time, date, time, duration
  • Email: email, idn-email
  • Hostnames: hostname, idn-hostname
  • IP Addresses: ipv4, ipv6
  • URIs: uri, uri-reference, iri, iri-reference, uri-template
  • Identifiers: uuid
  • JSON Pointers: json-pointer, relative-json-pointer
  • Patterns: regex

Behavior

  • Non-string data always passes format validation.
  • Unknown format values pass validation by default (per the JSON Schema specification).

Summary

Functions

Validates data against the specified format.

Functions

validate(format, data)

Validates data against the specified format.

Non-string data always passes. Unknown format values pass by default.

Examples

iex> JSONSchex.Formats.validate("email", "user@example.com")
:ok

iex> JSONSchex.Formats.validate("email", "not-an-email")
{:error, %JSONSchex.Types.ErrorContext{contrast: "email", input: "not-an-email"}}

iex> JSONSchex.Formats.validate("email", 123)
:ok