# jsonschex v0.2.1 - Table of Contents A JSON Schema validator with complete support for the draft 2020-12 and latest specifications. ## Pages - [JSONSchex](readme.md) - [Changelog](changelog.md) - Guides - [Loader and Remote $ref Guide](loader.md) - [Dialect and $vocabulary Guide](dialect_and_vocabulary.md) - [Draft 2020-12 Feature Matrix](feature_matrix.md) - [Content and Format Assertions Guide](content_and_format.md) - [Test Suite Coverage Guide](test_suite.md) ## Modules - [JSONSchex.ErrorFormatter](JSONSchex.ErrorFormatter.md): Formats `JSONSchex.Types.Error` and `JSONSchex.Types.CompileError` structs into human-readable strings. - [JSONSchex.Types.CompileError](JSONSchex.Types.CompileError.md): An error encountered during schema compilation. - [JSONSchex.Types.ValidationContext](JSONSchex.Types.ValidationContext.md): Lightweight runtime context threaded through validation. - Public API - [JSONSchex](JSONSchex.md): JSON Schema Draft 2020-12 validator for Elixir. - Types - [JSONSchex.Types](JSONSchex.Types.md): Defines the core data structures used by JSONSchex. - [JSONSchex.Types.Error](JSONSchex.Types.Error.md): A validation error with path, rule, and optional message/context. - [JSONSchex.Types.Rule](JSONSchex.Types.Rule.md): A single compiled validation step. - [JSONSchex.Types.Schema](JSONSchex.Types.Schema.md): A compiled JSON Schema, containing executable validation rules and a definition registry for reference resolution. - Compiler - [JSONSchex.Compiler](JSONSchex.Compiler.md): Transforms raw JSON Schema maps into executable `Schema` structs. - [JSONSchex.Compiler.ECMARegex](JSONSchex.Compiler.ECMARegex.md): Handles compilation of ECMA-262 regular expressions for use in Elixir/PCRE. - [JSONSchex.Compiler.Predicates](JSONSchex.Compiler.Predicates.md): Pure predicates for JSON Schema validation constraints. - [JSONSchex.Compiler.Predicates.MultipleOf](JSONSchex.Compiler.Predicates.MultipleOf.md): Validates numbers against the JSON Schema `multipleOf` rule. Handles arbitrary precision if `Decimal` is available. Falls back to native arithmetic with overflow protection if not. - Validator - [JSONSchex.Validator](JSONSchex.Validator.md): Executes compiled `Schema` rules against data, accumulating errors and tracking evaluated keys for `unevaluatedProperties`/`unevaluatedItems`. - [JSONSchex.Validator.Keywords](JSONSchex.Validator.Keywords.md): Runtime validation functions for complex JSON Schema keywords. - [JSONSchex.Validator.Reference](JSONSchex.Validator.Reference.md): Resolves `$ref` and `$dynamicRef` during validation, including remote schema loading and JIT compilation of JSON Pointer references. - Formats - [JSONSchex.Formats](JSONSchex.Formats.md): Implements validation logic for the 'format' keyword. - [JSONSchex.Formats.DateTime](JSONSchex.Formats.DateTime.md): Validates "date-time" format according to RFC 3339. - [JSONSchex.Formats.Email](JSONSchex.Formats.Email.md): Validates `email` format according to RFC 5322 (Addr-Spec). Includes support for quoted strings in local part and IP literals in domain. - [JSONSchex.Formats.Hostname](JSONSchex.Formats.Hostname.md): Validates "hostname" format according to RFC 1123. - [JSONSchex.Formats.IP](JSONSchex.Formats.IP.md): Validates `ipv4` and `ipv6` formats. - [JSONSchex.Formats.Regex](JSONSchex.Formats.Regex.md): Validates `regex` format according to strict ECMA-262. - [JSONSchex.Formats.Time](JSONSchex.Formats.Time.md): Validates "time" format according to RFC 3339. - [JSONSchex.Formats.URITemplate](JSONSchex.Formats.URITemplate.md): Validates `uri-template` format according to RFC 6570. - Internal - [JSONSchex.ScopeScanner](JSONSchex.ScopeScanner.md): Scans a raw schema tree to discover all `$id`, `$anchor`, and `$dynamicAnchor` definitions, resolving them against parent base URIs to build a registry of absolute URI → raw schema mappings. - [JSONSchex.URIUtil](JSONSchex.URIUtil.md): Utilities for URI resolution and manipulation. - [JSONSchex.Vocabulary](JSONSchex.Vocabulary.md): Maps JSON Schema keywords to their Draft 2020-12 vocabulary URIs and defines the default vocabulary list.