You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Generators that produce schemas that are compatible with draft-06+ (e.g. no boolean `exlusiveMaximum`/`exclusiveMinimum`, no `id`, no hardwired draft-04 `$schema`) may be listed here. Such tools need not necessarily be able to generate every keyword from recent drafts.
125
+
Schema generators need not support generating every schema keyword.
126
+
For schema generators, compatibility with a draft means that either:
127
+
128
+
* Schemas produced explicitly set the draft with `$schema`
129
+
* Schemas produced lack `$schema` but are valid against the appropriate meta-schema
130
+
131
+
For example, the only incompatibilities between draft-04 and draft-06 involve `exclusiveMinimum`, `exclusiveMaximum`, and `id` vs `$id`. If a generator does not set `$schema` and does not ever emit those keywords, then it is compatible with draft-06 even if it was written with draft-04 in mind.
132
+
133
+
#### From code
116
134
117
135
- .NET
118
136
-[Json.NET](https://www.newtonsoft.com/jsonschema) (AGPL-3.0) - generates schemas from .NET types
119
137
-[NJsonSchema](http://NJsonSchema.org) - (Ms-PL) - generates schemas from .NET types, see issue [574](https://github.com/RSuter/NJsonSchema/issues/574) for draft-06+ support progress
-[Liform](https://github.com/Limenius/liform) (MIT) - generates schemas from Symfony forms
124
-
- Scala
125
-
-[Schema Guru](https://github.com/snowplow/schema-guru) (Apache 2.0) - CLI util, Spark Job and Web UI for deriving JSON Schemas out of corpus of JSON instances; see issue [178](https://github.com/snowplow/schema-guru/issues/178) for progress towards draft-06+ support
-[Schema Guru](https://github.com/snowplow/schema-guru) (Apache 2.0) - CLI util, Spark Job and Web UI for deriving JSON Schemas out of corpus of JSON instances; see issue [178](https://github.com/snowplow/schema-guru/issues/178) for progress towards draft-06+ support
128
147
- Online (web tool)
129
148
-[jsonschema.net](http://www.jsonschema.net) - generates schemas from example data
130
149
-[quicktype.io](https://app.quicktype.io/#l=schema) - infer JSON Schema from samples, and generate TypeScript, C++, go, Java, C#, Swift, etc. types from JSON Schema
131
150
132
-
Data parsing and code generation
133
-
--------------------------------
151
+
152
+
Generators from schemas
153
+
-----------------------
154
+
155
+
Tools that generate artifacts from schemas need not support every keyword,
156
+
as not all keywords work well for generative use cases.
157
+
158
+
Generators are considered compatible with a draft if they support (or benignly
159
+
ignore) the appropriate `$schema` value, and interpret the keywords that they
160
+
do support according to that draft.
161
+
162
+
For example, if a generator that was originally written for draft-04 does not
163
+
support `id`, `exclusiveMinimum`, or `exclusiveMaxium`, then as long as it does
164
+
not require a draft-04 `$schema`, it is compatible with draft-06 since those
165
+
are the only keywords that changed.
166
+
167
+
#### Code generation
134
168
135
169
- Golang
136
170
-[jsonschema](https://github.com/qri-io/jsonschema)(MIT) - idiomatic go implementation with custom validator support, coding to and from json, rich error returns *supports Draft 7*
171
+
- Online (web tool)
172
+
-[quicktype.io](https://app.quicktype.io/#l=schema) - infer JSON Schema from samples, and generate TypeScript, C++, go, Java, C#, Swift, etc. types from JSON Schema
137
173
138
-
UI generation
139
-
-------------
174
+
#### Web UI generation
140
175
141
176
_TODO: Sort by draft support._
142
177
@@ -157,8 +192,42 @@ Various levels of support for UI generation primarily from the validation vocabu
Draft compatibility for utilities is generally specific to the purpose of
203
+
the utility, and decided on a case-by-case basis.
204
+
205
+
#### General processing
206
+
207
+
- JavaScript
208
+
-[@cloudflare/json-schema-walker](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-walker) ([JSON Schema Tools](https://github.com/cloudflare/json-schema-tools)), _draft-07, -06, -04, and Cloudflare's Doca extensions_ Walks schemas and runs pre- and post-walk callbacks. Can modify schemas in place. (BSD-3-Clause)
209
+
210
+
#### Schema to Schema
211
+
212
+
- JavaScript
213
+
-[@cloudflare/json-schema-transform](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-transform) ([JSON Schema Tools](https://github.com/cloudflare/json-schema-tools)), (BSD-3-Clause) Utilities using @cloudflare/json-schema-walker for transformations including `allOf` merging and example roll-up.
-[@cloudflare/json-schema-ref-loader](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-ref-loader) ([JSON Schema Tools](https://github.com/cloudflare/json-schema-tools)), (BSD-3-Clause) Webpack loader for dereference-able schemas in JSON, JSON5, YAML, or JavaScript
228
+
-[@cloudflare/json-schema-apidoc-loader](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-apidoc-loader) ([JSON Schema Tools](https://github.com/cloudflare/json-schema-tools)), Back-end for [@cloudflare/doca](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/doca), _draft-04, -06, -07, and Doca extensions_
229
+
230
+
#### Editors
162
231
163
232
_TODO: Sort by draft support._
164
233
@@ -173,29 +242,8 @@ _TODO: Sort by draft support._
173
242
-[Eclipse IDE](https://www.eclipse.org/downloads/eclipse-packages) - *Rich JSON edition supporting schema for instantaneous validation and error reporting, completion, documentation.*
174
243
-[WebStorm](https://www.jetbrains.com/webstorm/), [IntelliJ IDEA](https://www.jetbrains.com/idea/), and other [JetBrains IDEs](https://www.jetbrains.com/products.html?fromMenu#type=ide) - *Code completion, documentation, and validation for JSON files using JSON Schema*
175
244
176
-
Compatibility
177
-
-------------
178
245
179
-
Do you know of a tool that converts any version of JSON Schema to draft-07 or later? If so, please open a PR!
180
-
181
-
Documentation generation
182
-
------------------------
183
-
184
-
- JavaScript
185
-
-[@cloudflare/json-schema-apidoc-loader](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-apidoc-loader) Back-end for [@cloudflare/doca](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/doca), supporting draft-04, -06, -07, and Doca extensions (UI forthcoming)
186
-
187
-
Other
188
-
-----
189
-
190
-
- JavaScript
191
-
-[JSON Schema Tools](https://github.com/cloudflare/json-schema-tools) (BSD-3-Clause) Monorepo for various JSON Schema-related packages, including:
192
-
-[@cloudflare/json-schema-walker](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-walker) (BSD-3-Clause) Walks schemas (draft-04, -06, 07, and Cloudflare's Doca extensions) and runs pre- and post-walk callbacks. Can modify schemas in place.
193
-
-[@cloudflare/json-schema-transform](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-transform) (BSD-3-Clause) Utilities using @cloudflare/json-schema-walker for transformations including `allOf` merging and example roll-up.
194
-
-[@cloudflare/json-schema-ref-loader](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-ref-loader) (BSD-3-Clause) Webpack loader for dereference-able schemas in JSON, JSON5, YAML, or JavaScript
195
-
-[@cloudflare/json-hyper-schema](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-hyper-schema) (BSD-3-Clause) Utilities for working with Link Description Objects
0 commit comments