From eaf4615640cf129025d20ca6774f8fede4f3adb3 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Sun, 8 Jan 2023 17:24:21 +0000 Subject: [PATCH] docs: update schema language comparison --- docs/guide/schema-language.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/guide/schema-language.md b/docs/guide/schema-language.md index 4b87903a3..a10fc8f98 100644 --- a/docs/guide/schema-language.md +++ b/docs/guide/schema-language.md @@ -2,6 +2,7 @@ tags: - JTD --- + # Choosing schema language [[toc]] @@ -123,17 +124,19 @@ See [JSON Schema](../json-schema.md) for more information and the list of define - Defines the shape of JSON data via strictly defined schema forms (rather than the collection of restrictions). - Effective support for tagged unions. - Designed to protect against user mistakes. -- Supports compilation of schemas to efficient [serializers and parsers](./getting-started.md#parsing-and-serializing-json) (no need to validate as a separate step) -- Approved as [RFC8927](https://datatracker.ietf.org/doc/rfc8927/) +- Supports compilation of schemas to efficient [serializers and parsers](./getting-started.md#parsing-and-serializing-json) (no need to validate as a separate step). +- Approved as [RFC8927](https://datatracker.ietf.org/doc/rfc8927/). +- Substantial industry adoption since it was standardized in 2020, Ajv v8.12.0 fixed all reported JTD bugs. **Cons**: -- Limited, compared with JSON Schema - no support for untagged unions\*, conditionals, references between different schema files\*\*, etc. -- No meta-schema in the specification\*. -- Brand new - limited industry adoption (as of January 2021). +- Limited, compared with JSON Schema - no support for untagged unions1, conditionals, references between different schema files2, etc. +- No meta-schema in the specification3. + +1 Ajv defines non-standard keyword "union" that can be used inside "metadata" object. -\* Ajv defines meta-schema for JTD schemas and non-standard keyword "union" that can be used inside "metadata" object. +2 You can still combine schemas from multiple files in the application code. -\*\* You can still combine schemas from multiple files in the application code. +3 Ajv defines meta-schema for JTD schemas. See [JSON Type Definition](../json-type-definition.md) for more information and the list of defined schema forms.