# FHIR Schema Validator {% hint style="info" %} Test FHIR Schema Validator on public [demo page](https://fhir-validator.aidbox.app). {% endhint %} This new validation engine is set to replace the existing [Zen Schema Validator](../../../reference/all-settings.md) and JSON Schema validators.\ \ The primary objectives for this new validator are _enhanced performance_, _easy configuration_, and _straightforward interaction_. Internally, the new validator utilizes the [FHIR Schema](https://github.com/fhir-schema/fhir-schema) for the validation process. We believe that it has the potential to become a [community](https://chat.fhir.org/#narrow/stream/391879-FHIR-Schema/topic/early.20draft) standard, and we are actively working towards this goal.\ \ Building on our past experiences, we've simplified the interaction process with the validation module. If you wish to use the StructureDefinition resource as a source of truth, simply POST it. ## FHIR Schema FHIR Schema is a format designed to simplify the implementation and validation of FHIR resources. It is heavily inspired by the design of JSON Schema and introduces a more developer-friendly representation of FHIR StructureDefinitions. ### Key features of FHIR Schema include: * _**Simplified Structure**_\ FHIR Schema represents FHIR resources and their elements in a more straightforward and intuitive manner compared to FHIR StructureDefinition. Each element is represented as a property of the resource with its type specified directly. This representation is similar to how data structures are typically defined in programming languages. * _**Nested Elements**_\ FHIR Schema provides a clear and simple way to represent and validate nested elements in FHIR resources. This is a key requirement for many healthcare data use cases. * _**First-class Arrays**_\ Identify and label arrays. Most non-XML implementations distinguish between arrays and singular elements, so it's beneficial to pre-calculate this distinction. * _**Clear Implementation Semantics**_\ FHIR Schema offers clear semantics for implementing FHIR validation rules. This clarity can make it easier for developers to create robust and reliable FHIR implementations. * _**Source of metadata**_\ This is essential for FHIRPath, CQL, and code-generation. In summary, FHIR Schema is a format that aims to make FHIR more accessible and easier to work with for developers, potentially leading to improved interoperability of healthcare systems. ## Validator Features Comparison of features with previous validation engines
| Feature | FHIR Schema | Zen Schema | JSON Schema |
|---|---|---|---|
| Invariants | true | false | false |
| Forbidden elements (max 0) | true | false | false |
| Required elements | true | true | true |
| Constants | true | true | false |
| Union types | true | false | false |
| Empty values check | true | false | false |
| Primitive types | true | true | true |
| Slicing | true | true | false |
| Ordered slicing | true | false | false |
| Default slice | true | false | false |
| Type slicing | true | false | false |
| Binding slicing | true | false | false |
| Target slicing | true | false | false |
| Re-slicing | true | false | false |
| Terminology bindings | true | true | false |
| Extensions validation | true | false | false |
| Underscore properties | true | false | false |
| References | true | true | true |
| Recursive schemas | true | true | true |
Error on nulls* | true | false | false |