Schema Validation
This guide shows you how to validate document structure using Joyfill's schema validation system.
What is Schema Validation
Schema validation checks if your JSON document follows the correct Joyfill document structure before creating a form.
Enabling/Disabling Schema Validation
Schema validation is enabled by default in rememberDocumentEditor:
// Disable schema validation
val editor = rememberDocumentEditor(
json = jsonString,
validateSchema = false // default is true
)How It Works
When validateSchema = true:
- Document is validated against the Joyfill schema during editor creation
- If validation fails, an error is set and the
onErrorcallback is triggered - If validation passes, the editor is created normally
Schema Error Types
| Error Type | Code | When It Happens | Example |
|---|---|---|---|
| SchemaError.Assertion | ERROR_SCHEMA_VALIDATION | Document structure doesn't match schema rules | Missing required properties like files or fields |
| SchemaError.Format | ERROR_SCHEMA_FORMAT | JSON format is invalid | Empty/blank string or malformed JSON |
| SchemaError.Version | ERROR_SCHEMA_VERSION | Document version incompatible with SDK | Document created with newer SDK version |
Error Monitoring
Monitor schema errors reactively:
@Composable
fun FormWithSchemaValidation() {
val editor = rememberDocumentEditor(json = jsonString)
val error = editor.error.watchAsState()
if (error != null) {
// Schema validation failed
Text("Schema Error: ${error.message}")
} else {
// Schema is valid, show form
Form(editor = editor)
}
}Things to know
Schema validation is enabled by default (validateSchema = true). Disabling schema validation can lead to crashes and should only be used for testing. Schema errors include both user-friendly messages and technical details. Validation happens during editor creation, not during form interaction.
Updated 14 days ago
What’s Next