diff --git a/.gitignore b/.gitignore
index 582ed7b5..6fe13fcd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
.sass-cache/
_site/
node_modules/
+.vscode/
diff --git a/_config.yml b/_config.yml
index d5aeeab0..3a16502f 100644
--- a/_config.yml
+++ b/_config.yml
@@ -18,7 +18,7 @@ title: JSON Schema
description: The home of JSON Schema
baseurl: "" # the subpath of your site, e.g. /blog
url: "" # the base hostname & protocol for your site
-#twitter_username: jekyllrb
+twitter_username: jsonschema
github_username: json-schema-org
google_analytics: UA-99695987-1
diff --git a/_data/validator-libraries-modern.yml b/_data/validator-libraries-modern.yml
index e119286d..a6a5f306 100644
--- a/_data/validator-libraries-modern.yml
+++ b/_data/validator-libraries-modern.yml
@@ -3,7 +3,7 @@
implementations:
- name: Json.NET Schema
url: https://www.newtonsoft.com/jsonschema
- date-draft:
+ date-draft: [2019-09]
draft: [7, 6, 4, 3]
license: "AGPL-3.0-only"
- name: Manatee.Json
@@ -31,6 +31,12 @@
date-draft:
draft: [7]
license: MIT
+ - name: Valijson
+ url: https://github.com/tristanpenman/valijson
+ notes: header-only library, works with many JSON parser implementations
+ date-draft:
+ draft: [7]
+ license: BSD-2-Clause
- name: Clojure
implementations:
- name: jinx
@@ -43,6 +49,13 @@
date-draft:
draft: [7]
license: Apache License, Version 2.0
+- name: Common Lisp
+ implementations:
+ - name: json-schema
+ url: https://github.com/fisxoj/json-schema
+ date-draft: [2019-09]
+ draft: [4, 6, 7]
+ license: LGPL
- name: Elixir
implementations:
- name: Elixir JSON Schema validator
@@ -71,12 +84,18 @@
license: BSD-3-Clause
- name: qri-io/jsonschema
url: https://github.com/qri-io/jsonschema
- date-draft:
+ date-draft: [2019-09]
draft: [7]
license: MIT
notes: includes custom validator support, rich error returns
- name: Java
implementations:
+ - name: Snow
+ url: https://github.com/ssilverman/snowy-json
+ notes: Uses Maven for the project and Gson under the hood.
+ date-draft: [2019-09]
+ draft: [7, 6]
+ license: GNU Affero General Public License v3.0
- name: everit-org/json-schema
url: https://github.com/everit-org/json-schema
notes:
@@ -117,11 +136,23 @@
date-draft:
draft: [6, 4]
license: MIT
+ - name: Hyperjump JSV
+ url: https://github.com/jdesrosiers/json-schema
+ notes: "Built for Node.js and browsers. Includes support for custom vocabularies."
+ date-draft: [2019-09]
+ draft: [7, 6, 4]
+ license: MIT
- name: vue-vuelidate-jsonschema
url: https://github.com/mokkabonna/vue-vuelidate-jsonschema
date-draft:
draft: [6]
license: MIT
+ - name: "@cfworker/json-schema"
+ url: https://github.com/cfworker/cfworker/blob/master/packages/json-schema/README.md
+ notes: "Built for Cloudflare workers, browsers, and Node.js"
+ date-draft: [2019-09]
+ draft: [7, 6, 4]
+ license: MIT
- name: Perl
implementations:
- name: JSON::Validator
@@ -130,6 +161,11 @@
date-draft:
draft: [7, 6, 4]
license: "The Artistic License 2.0 (GPL Compatible)"
+ - name: JSON::Schema::Draft201909
+ url: https://github.com/karenetheridge/JSON-Schema-Draft201909
+ notes:
+ date-draft: [2019-09]
+ license: "GNU General Public License, Version 1 + The Artistic License 1.0"
- name: PHP
implementations:
- name: Opis Json Schema
@@ -158,6 +194,12 @@
date-draft:
draft: [7, 6, 4]
license: BSD-3-Clause
+ - name: jsonschema-rs
+ url: https://github.com/Stranger6667/jsonschema-rs/python
+ notes: Python bindings to Rust's jsonschema crate
+ date-draft:
+ draft: [7, 6, 4]
+ license: MIT
- name: Ruby
implementations:
- name: JSONSchemer
@@ -166,6 +208,14 @@
date-draft:
draft: [7, 6, 4]
license: MIT
+- name: Rust
+ implementations:
+ - name: jsonschema-rs
+ url: https://github.com/Stranger6667/jsonschema-rs
+ notes: Fast due to compiling schema into a validation tree
+ date-draft:
+ draft: [7, 6, 4]
+ license: MIT
- name: Objective-C
implementations:
- name: DSJSONSchemaValidation
@@ -184,9 +234,14 @@
license: MIT
- name: Web (Online)
implementations:
+ - name: Hyperjump JSV
+ url: https://json-schema.hyperjump.io
+ date-draft: [2019-09]
+ draft: [7, 6, 4]
+ notes: Supports multiple schemas and multiple instances
- name: JSON Schema Validator
url: https://www.jsonschemavalidator.net/
- date-draft:
+ date-draft: [2019-09]
draft: [7, 6, 4, 3]
- name: JSON Schema Lint
url: http://jsonschemalint.com/
diff --git a/_includes/draft/2019-09 b/_includes/draft/2019-09
index b47f567e..03fe369b 160000
--- a/_includes/draft/2019-09
+++ b/_includes/draft/2019-09
@@ -1 +1 @@
-Subproject commit b47f567e1ef87ae16b69aeb8c3084729a22c9bce
+Subproject commit 03fe369b6192bcd6052e96bac8a5b0cfd15d5c07
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 00000000..751e0dcc
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,23 @@
+
+
+
+ {%- include head.html -%}
+
+
+
+ {%- include header.html -%}
+
+
+ {% if page.url != "/" %}
+
+ {% endif %}
+
+ {{ content }}
+
+
+
+ {%- include footer.html -%}
+
+
+
+
diff --git a/assets/main.scss b/assets/main.scss
index 045e2314..39e9a030 100644
--- a/assets/main.scss
+++ b/assets/main.scss
@@ -48,3 +48,79 @@ code {
// minima.scss overrides
$spacing-unit: 10px !default;
$content-width: 960px !default;
+
+// Carbon ads
+
+#carbonads {
+ max-width: 300px;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;
+ display: flex;
+ position: fixed;
+ right: 10px;
+ top: 90px;
+ font-size: 12px;
+ line-height: 1.45;
+ background-color: #f9f9f9;
+ border: 1px dashed;
+ border-color: #cacaca;
+}
+
+@media (max-width: 1420px) {
+ #carbonads {
+ display: block;
+ position: relative;
+ right: unset;
+ top: unset;
+ margin: auto;
+ margin-bottom: 30px;
+ overflow: hidden;
+ max-width: 728px;
+ font-size: 24px;
+ box-sizing: content-box;
+ }
+}
+
+#carbonads > span {
+ position: relative;
+ display: block;
+ padding: 10px;
+ border-radius: 4px;
+}
+
+#carbonads .carbon-wrap {
+ display: flex;
+}
+
+#carbonads .carbon-img {
+ margin-right: 10px;
+ line-height: 1;
+}
+
+#carbonads .carbon-text {
+ margin-bottom: 12px;
+ color: #637381;
+ text-decoration: none;
+}
+
+#carbonads .carbon-poweredby {
+ position: absolute;
+ bottom: 10px;
+ left: 152px;
+ color: #c5cdd0;
+ text-decoration: none;
+ text-transform: uppercase;
+ letter-spacing: .5px;
+ font-weight: 500;
+ font-size: 10px;
+ line-height: 1;
+}
+
+#carbonads .carbon-poweredby:hover {
+ color: #637381;
+}
+
+@media only screen and (min-width: 320px) and (max-width: 759px) {
+ .carbon-text {
+ font-size: 14px;
+ }
+}
diff --git a/implementations.md b/implementations.md
index 716a4887..7ca2e0ee 100644
--- a/implementations.md
+++ b/implementations.md
@@ -150,8 +150,6 @@ For example, the only incompatibilities between draft-04 and draft-06 involve `e
- .NET
- [Json.NET](https://www.newtonsoft.com/jsonschema) (AGPL-3.0) - generates schemas from .NET types
- [NJsonSchema](https://github.com/RSuter/NJsonSchema/) - (Ms-PL) - generates schemas from .NET types, see issue [574](https://github.com/RSuter/NJsonSchema/issues/574) for draft-06+ support progress
-- Golang
- - [qri-io/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*
- PHP
- [Liform](https://github.com/Limenius/liform) (MIT) - generates schemas from Symfony forms
- TypeScript
@@ -159,19 +157,22 @@ For example, the only incompatibilities between draft-04 and draft-06 involve `e
- Python
- [Pydantic](https://pydantic-docs.helpmanual.io/) (MIT) - generates schemas from Python models based on Python 3.6+ type hints.
- Java
- - [jsonschema-generator](https://github.com/victools/jsonschema-generator) (Apache 2.0) - generates schemas from Java types *supports Draft 7*
+ - [jsonschema-generator](https://github.com/victools/jsonschema-generator) (Apache 2.0) - generates schemas from Java types *supports Draft 7 and Draft 2019-09*
- Scala
- [scala-jsonschema](https://github.com/andyglow/scala-jsonschema) (Apache 2.0) - generates schemad out of Scala case classes
#### From data
+- Java
+ - [saasquatch/json-schema-inferrer](https://github.com/saasquatch/json-schema-inferrer) _draft-07, -06, -04_ (Apache 2.0) - Java library for inferring JSON Schemas from one or multiple JSON samples.
- Scala
- [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
+- Clojure
+ - [luposlip/json-schema](https://github.com/luposlip/json-schema) (Apache 2.0) - infer JSON Schema from Clojure data
- Online (web tool)
- [jsonschema.net](https://www.jsonschema.net/) - generates schemas from example data
- [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
-
Generators from schemas
-----------------------
@@ -199,6 +200,8 @@ are the only keywords that changed.
- [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
- PHP
- [php-code-builder](https://github.com/swaggest/php-code-builder)(MIT) - generates PHP mapping structures defined by JSON schema using [swaggest/json-schema](https://github.com/swaggest/php-json-schema) *supports Draft 7*
+- Python
+ - [yacg](https://github.com/OkieOth/yacg) (MIT) - parse JSON Schema and OpenApi files to build a meta model from them. This meta model can be used in Mako templates to generate source code, other schemas or plantUml.
- Rust
- [schemafy](https://github.com/Marwes/schemafy/) - generates Rust types and serialization code from a JSON schema. *supports Draft 4*
@@ -213,6 +216,7 @@ Various levels of support for UI generation primarily from the validation vocabu
- [Angular Schema Form](https://github.com/json-schema-form/angular-schema-form) (MIT)
- [Angular2 Schema Form](https://github.com/makinacorpus/angular2-schema-form) *unrelated to Angular Schema Form* (MIT)
- [Angular6-json-schema-form](https://github.com/hamzahamidi/Angular6-json-schema-form) (MIT)
+ - [Dashjoin JSON Schema Form](https://github.com/dashjoin/json-schema-form) (Apache 2) *draft-06 (minus oneOf, anyOf, allOf, not)*
- [JSON Editor](https://github.com/json-editor/json-editor) (MIT)
- [JSON Form (joshfire)](https://github.com/joshfire/jsonform) (joshfire) (MIT)
- [Json Forms (brutusin)](https://github.com/brutusin/json-forms) (brutusin) (MIT)
@@ -238,6 +242,9 @@ the utility, and decided on a case-by-case basis.
- JavaScript
- [json-schema-ref-parser](https://github.com/BigstickCarpet/json-schema-ref-parser) (MIT) Tools for dereferencing non-cyclic schemas, bundling referenced schemas into a single file, and other `$ref` processing.
- [@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)
+ - [@hyperjump/json-schema-core](https://github.com/jdesrosiers/json-schema-core)
+ (MIT) Tools for working with schemas that handle identifiers and
+ references. Build vocabularies and other JSON Schema based tools.
#### Schema to Schema
@@ -271,22 +278,15 @@ _None currently support draft-06 or later._
#### Editors
-_TODO: Sort by draft support._
-
- [Altova XMLSpy 2019r3](https://www.altova.com/xmlspy-xml-editor#json_schema) - *Graphical JSON Schema editor for draft-06 and draft-7, as well as validation of JSON files based on JSON Schema*
-- [Liquid XML Studio 2016](https://www.liquid-technologies.com/json-schema-editor) - *Graphical JSON schema editor for draft 4, context sensitive intellisense for JSON documents.*
-- [Visual Studio 2013](https://www.visualstudio.com/) - *Auto-completion and tooltips based on JSON schema draft 3 and draft 4*
-- [JSONBuddy](https://www.json-buddy.com/) - *Text and grid-style JSON editor and validator with context sensitive entry-helpers and sample data generation based on JSON schema. Support for draft 4, draft 6 and draft 7.*
-- [ReSharper 2016.1](https://www.jetbrains.com/resharper/) - *code completion, inspections and quick fixes for JSON schema in Visual Studio 2010 - 2015, including support for JSON Path and regular expressions for schema editing*
+- [Dashjoin JSON Schema editor](https://dashjoin.github.io/#/schema) - *Graphical online JSON Schema editor for draft-06 (minus oneOf, anyOf, allOf, not). The generated schema can be tested immediately via a form that is driven by it.*
+- [JSONBuddy](https://www.json-buddy.com/) - *Text and grid-style JSON editor and validator with context sensitive entry-helpers and sample data generation based on JSON schema. Support for draft-4, draft-6 and draft-7.*
+- [JSONEditor Online](https://jsoneditoronline.org/) - *View, edit, format, and validate JSON online* Support draft-4, draft-6, and draft-7.
+- [Oxygen JSON Editor](https://www.oxygenxml.com/xml_editor/json.html) - *JSON editor with a variety of editing features and helper views. Support for validation and editing JSON Schema draft-4, draft-6, and draft-7. Validation and editing of JSON files based on JSON Schema.*
+- [Stoplight Studio](https://stoplight.io/) - *JSON Schema IDE (text-based and GUI) with support for JSON/YAML linting, which can also be based on JSON Schema rules via Spectral. Support for draft-4, draft-6 and draft-7.*
- [Visual Studio Code](https://code.visualstudio.com/) - *Schema driven code completion, hovers and validation for editing JSON files (including schemas)*
-- [JSONEditor Online](https://jsoneditoronline.org/) - *View, edit, format, and validate JSON online*
-- [JSON Schema Editor](https://json-schema-editor.tangramjs.com) - *An intuitive editor for JSON schema online*
-- [JSON Editor](https://json-editor.tangramjs.com) - *An online, schema-aware editor for JSON document*
+- [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 and YAML files using JSON Schema. Support for draft-4, draft-6, and draft-7.*
- [Eclipse IDE](https://www.eclipse.org/downloads/eclipse-packages) - *Rich JSON edition supporting schema for instantaneous validation and error reporting, completion, documentation.*
-- [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 and YAML files using JSON Schema*
-- [JsonDraft](https://jsondraft.com/) - *Tree view JSON and JSON Schema editor online. Create and Save reusable components, Share JSON.*
-- [Oxygen JSON Editor](https://www.oxygenxml.com/xml_editor/json.html) - *JSON editor with a variety of editing features and helper views. Support for validation and editing JSON Schema draft-4, draft-6, and draft-7. Validation and editing of JSON files based on JSON Schema.*
-
Schema Repositories
-------------------
@@ -297,4 +297,5 @@ Schema Repositories
Schema Linter
-------------
-- [json-schema-linter](https://www.json-schema-linter.com/) - Lint/validate/parse json-schema itself and find out out typo, missing properties, missing required keys etc. Supports draft 4, 6, and 7.
+- [json-schema-linter](https://www.json-schema-linter.com/) - Lint/validate/parse json-schema itself, and find typos, missing properties, missing required keys, etc. Supports draft 4, 6, and 7.
+- [Stoplight Spectral](https://stoplight.io/open-source/spectral) - A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v2/v3 and JSON Schema. Supports draft 4, 6, and 7.
diff --git a/index.md b/index.md
index a67a09bb..5fe4b646 100644
--- a/index.md
+++ b/index.md
@@ -1,5 +1,5 @@
---
-layout: page
+layout: default
title: JSON Schema
permalink: /
---
diff --git a/obsolete-implementations.md b/obsolete-implementations.md
index fcb22a07..2950d504 100644
--- a/obsolete-implementations.md
+++ b/obsolete-implementations.md
@@ -60,13 +60,6 @@ Validators
-
-### Online
-
-- [JSON Schema Lint](http://jsonschemalint.com/) - validate against your own schemas
-- [SchemaStore.org](http://schemastore.org/validator/) - validate against common JSON Schemas
-- [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
-
### Command Line
@@ -129,7 +122,7 @@ Hyper-Schema
{% endfor %}
-Schema generators
+Schema Generators
-----------------
- Python
@@ -151,7 +144,7 @@ Generators from schemas
- JavaScript
- [json-schema-generator](https://github.com/json-schema-faker) (MIT) - JSON-Schema + fake data generators
-Data parsing and code generation
+Data Parsing and Code Generation
--------------------------------
- Delphi
@@ -168,9 +161,9 @@ Data parsing and code generation
- Swift
- [Bric-à-brac](https://github.com/glimpseio/BricBrac) (MIT) - generates idiomatic swift structs and parser/serializer from JSON schemas
- Golang
- - [gojsonschema](https://github.com/andy-zhangtao/gojsonschema)(Apache 2.0) - golang package for generating golang struct *supports Draft 4*. [Demo](http://json.golang.chinazt.cc)
+ - [gojsonschema](https://github.com/andy-zhangtao/gojsonschema)(Apache 2.0) - golang package for generating golang struct *support for Draft 4*. [Demo](http://json.golang.chinazt.cc)
-UI generation
+UI Generation
-------------
_TODO: Sort by draft support._
@@ -195,17 +188,11 @@ Various levels of support for UI generation primarily from the validation vocabu
Editors
-------
-_TODO: Sort by draft support._
-
- [Liquid XML Studio 2016](https://www.liquid-technologies.com/json-schema-editor) - *Graphical JSON schema editor for draft 4, context sensitive intellisense for JSON documents.*
+- [ReSharper 2016.1](https://www.jetbrains.com/resharper/) - *code completion, inspections and quick fixes for JSON schema in Visual Studio 2010 - 2015, including support for JSON Path and regular expressions for schema editing. Support for draft-4*
- [Visual Studio 2013](http://www.visualstudio.com/) - *Auto-completion and tooltips based on JSON schema draft 3 and draft 4*
-- [JSONBuddy](http://www.json-buddy.com/) - *Grid-style JSON editor and context sensitive entry-helpers based on JSON schema*
-- [ReSharper 2016.1](https://www.jetbrains.com/resharper/) - *code completion, inspections and quick fixes for JSON schema in Visual Studio 2010 - 2015, including support for JSON Path and regular expressions for schema editing*
-- [Visual Studio Code](https://code.visualstudio.com/) - *Schema driven code completion, hovers and validation for editing JSON files (including schemas)*
-- [JSONEditor Online](http://jsoneditoronline.org) - *View, edit, format, and validate JSON online*
- [JSON Schema Editor](https://json-schema-editor.tangramjs.com) - *An intuitive editor for JSON schema online*
- [JSON Editor](https://json-editor.tangramjs.com) - *An online, schema-aware editor for JSON document*
-- [Eclipse IDE](https://www.eclipse.org/downloads/eclipse-packages) - *Rich JSON edition supporting schema for instantaneous validation and error reporting, completion, documentation.*
Compatibility
-------------