Structure
A UI Schema is a tree of elements. Each element has atype that determines how it behaves:
- Layouts — Container elements that organize other elements
- Controls — Elements that render input fields bound to schema properties
Layouts
Layouts organize controls and other layouts into a visual structure.VerticalLayout
Arranges elements vertically, one below the other.HorizontalLayout
Arranges elements horizontally, side by side.Group
Groups related controls together with an optional label.Categorization
Organizes content into tabs or wizard-style steps. ACategorization contains multiple Category elements, each representing a step in the form.
Categories correspond to steps in the schema. Each
Category typically maps to a root-level schema property, enabling progressive disclosure as users complete each step.ListWithDetail
Renders an array as a master-detail view — a list of items on one side and a detail form for the selected item.Controls
Controls render input fields and bind them to schema properties.Control
TheControl element renders an input based on the schema type at the specified scope.
The renderer automatically selects the appropriate input type based on the schema:
Rules
Rules control the visibility and enabled state of elements based on data conditions.Effects
Conditions
A condition specifies ascope (the property to evaluate) and a schema that the value must match.
Options
Theoptions property on controls allows you to customize behavior. These are standard JSON Forms options.
Array options
Options for array controls:readonly
Renders the control as read-only.detail
ForListWithDetail layouts, specifies the UI Schema for the detail view.
Custom options
The Enterprise API Suite extends JSON Forms with custom options for specific use cases.data
Specifies a data source for populating select options dynamically. Thedata object defines where to fetch options from and how to filter them.
format
Specifies custom display formats for controls that are not covered by the standard JSON Schemaformat keyword. Standard formats like date are defined in the JSON Schema and handled natively by renderers.
rules (validation)
Defines client-side validation rules on a control. These rules allow you to enforce constraints that go beyond standard JSON Schema validation, such as age thresholds relative to the current date.These validation rules are defined in
options.rules on individual controls and are distinct from the visibility rules (rule with effect and condition) that control element visibility.dependsOn
Declares that a control depends on the value of one or more other controls. When a dependency value changes, the dependent control should update its available options or validation accordingly.
Dependencies can also be chained. For example, a postal code field can depend on both country and subdivision:
Next steps
Rendering
Implementation guidance and best practices.