Skip to contents

Infer And Compact

schema_infer()
Infer a conservative schema from example data
schema_compact()
Compact a schema document

Parse And JSON IO

schema_doc()
Parse schema documents
schema_write() schema_read()
Read and write schema JSON

Validate

Validate data directly, or flatten a schema once and reuse it for repeated validation.

schema_validate()
Validate input against a schema
schema_flatten()
Flatten a schema for repeated validation

Modify Schema

Edit verbs return modified copies of schema objects. Paths use $ for the root node and bare field segments such as $id for container fields. Backtick-quote field names that contain path operators. Use $fields$id when you want the explicit field path.

Query And Batch Edit

schema_paths() schema_find()
Query schema paths and matching nodes
schema_modify_where() schema_replace_where()
Modify schema nodes selected by a predicate
schema_where_path() schema_where_check()
Create schema query predicates

Edit Nodes

schema_replace()
Replace a schema node
schema_set_desc()
Set or remove a schema node description

Edit Fields And Groups

schema_add_field()
Add a field schema to a container node
schema_del_field()
Delete a field schema from a container node
schema_add_group()
Add a schema group to a container node
schema_del_group()
Delete a schema group from a container node

Edit Keys, Rest, And Positions

schema_set_keys()
Set a schema node keys rule
schema_del_keys()
Delete a schema node keys rule
schema_set_rest()
Set or replace a container rest schema
schema_del_rest()
Delete a container rest schema
schema_add_position()
Add a position schema to an unnamed container node
schema_del_position()
Delete a position schema from an unnamed container node

Edit Definitions

schema_add_def()
Add a schema definition
schema_del_def()
Delete a schema definition

Author Fragments

Fragment helpers create raw schema DSL fragments that can be passed to schema_doc() or the edit verbs. They are convenient for authoring schema documents without hand-writing nested lists.

schema_check()
Create a schema check fragment
schema_ref()
Create a schema reference fragment
schema_group()
Create a schema group fragment
schema_all()
Create an all schema combinator fragment
schema_any()
Create an any schema combinator fragment
schema_one()
Create a one schema combinator fragment
schema_not()
Create a not schema combinator fragment