Skip to content
This repository was archived by the owner on Nov 2, 2023. It is now read-only.

Commit 3fa79d5

Browse files
committed
Merging in upstream changes before pushing
2 parents b949a57 + d8f6975 commit 3fa79d5

File tree

8 files changed

+87
-16
lines changed

8 files changed

+87
-16
lines changed

_data/validator-libraries-modern.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
- name: json-schema
3232
url: https://github.com/luposlip/json-schema
3333
draft: [7]
34-
license: Eclipse Public License 2.0
34+
license: Apache License, Version 2.0
3535
- name: Elixir
3636
implementations:
3737
- name: Elixir JSON Schema validator
@@ -134,7 +134,10 @@
134134
draft: [7, 6, 4, 3]
135135
- name: JSON Schema Lint
136136
url: http://jsonschemalint.com/
137-
draft: [6, 4, 3, 2, 1]
137+
draft: [7, 6, 4, 3, 2, 1]
138+
- name: ExtendsClass's JSON Schema Validator
139+
url: https://extendsclass.com/json-schema-validator.html
140+
draft: [7]
138141
- name: Command Line
139142
implementations:
140143
- name: ajv-cli

implementations.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ Validators
6464

6565
Benchmarks that compare at least two implementations supporting draft-06+ may be listed here.
6666

67+
- Go
68+
- [validator-benchmarks](https://github.com/TheWildBlue/validator-benchmarks) - benchmark of Go JSON Schema validators based on official test suite
69+
6770
- JavaScript
6871
- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - an independent benchmark for Node.js JSON-schema validators based on JSON-Schema Test Suite (MIT)
6972

@@ -149,6 +152,8 @@ For example, the only incompatibilities between draft-04 and draft-06 involve `e
149152
- [typescript-json-schema](https://github.com/YousefED/typescript-json-schema)
150153
- Python
151154
- [Pydantic](https://pydantic-docs.helpmanual.io/) (MIT) - generates schemas from Python models based on Python 3.6+ type hints.
155+
- Java
156+
- [jsonschema-generator](https://github.com/victools/jsonschema-generator) (Apache 2.0) - generates schemas from Java types *supports Draft 7*
152157

153158
#### From data
154159

@@ -180,6 +185,8 @@ are the only keywords that changed.
180185
- [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
181186
- PHP
182187
- [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*
188+
- Elm
189+
- [json-schema-to-elm](https://github.com/dragonwasrobot/json-schema-to-elm) - generates Elm types, JSON decoders+encoders, and fuzz tests from one or more JSON Schema files, using [dragonwasrobot/json_schema](https://github.com/dragonwasrobot/json_schema) *supports Draft 7*
183190

184191
#### Web UI generation
185192

@@ -248,11 +255,12 @@ the utility, and decided on a case-by-case basis.
248255
- Python
249256
- [hypothesis-jsonschema](https://github.com/Zac-HD/hypothesis-jsonschema) (MPL) *draft-07, -06, -04*; creates [Hypothesis](https://hypothesis.works/) strategies for documents which match any schema, even with complex and interacting constraints.
250257
- [hypo\_schema](https://github.com/mlakewood/hypo_schema) (BSD-2-Clause) Creates generators for Hypothesis from JSON Schema
251-
258+
252259
#### Editors
253260

254261
_TODO: Sort by draft support._
255262

263+
- [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*
256264
- [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.*
257265
- [Visual Studio 2013](https://www.visualstudio.com/) - *Auto-completion and tooltips based on JSON schema draft 3 and draft 4*
258266
- [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.*

learn/examples/calendar.schema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"$id": "https://example.com/address.schema.json",
2+
"$id": "https://example.com/calendar.schema.json",
33
"$schema": "http://json-schema.org/draft-07/schema#",
44
"description": "A representation of an event",
55
"type": "object",

learn/examples/card.schema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"$id": "https://example.com/address.schema.json",
2+
"$id": "https://example.com/card.schema.json",
33
"$schema": "http://json-schema.org/draft-07/schema#",
44
"description": "A representation of a person, company, organization, or place",
55
"type": "object",

obsolete-implementations.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ Hyper-Schema
129129
{% endfor %}
130130
</ul>
131131

132-
Schema generation
132+
Schema generators
133133
-----------------
134134

135135
- Python
@@ -143,6 +143,14 @@ Schema generation
143143
- Sparx Enterprise Architect
144144
- [API-Add-In](https://github.com/bayeslife/api-add-in) - Sparx EA extension for exporting JSON Schema from UML models
145145

146+
Generators from schemas
147+
-----------------------
148+
149+
#### Data from schemas
150+
151+
- JavaScript
152+
- [json-schema-generator](https://github.com/json-schema-faker) (MIT) - JSON-Schema + fake data generators
153+
146154
Data parsing and code generation
147155
--------------------------------
148156

specification.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ The meta-schemas are schemas against which other schemas can be validated. They
3939
The latest meta-schema is **draft-07**.
4040

4141
|--------------------------------------------------------------|------------------------------------------------------------|
42-
| [Core/Validation meta-schema](http://json-schema.org/draft-07/schema) | Used for schemas written for pure validation. |
43-
| [Hyper meta-schema](http://json-schema.org/draft-07/hyper-schema) | Used for schemas written for validation and hyper-linking. |
42+
| [Core/Validation meta-schema](https://json-schema.org/draft-07/schema) | Used for schemas written for pure validation. |
43+
| [Hyper meta-schema](https://json-schema.org/draft-07/hyper-schema) | Used for schemas written for validation and hyper-linking. |
4444

4545
_If you are accessing the above meta-schema links **from a web browser**, you will need to **save the file** then open it as a JSON document._
4646

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
title: JSON Schema Draft-07 Release Notes
3+
layout: page
4+
---
5+
6+
There are a few non-breaking changes with keywords being deprecated and slates
7+
for removal, and a few newer keywords based on community feedback. Internally
8+
there has been a lot of restructuring through a new concept called vocabularies,
9+
but on the whole things are mostly the same.
10+
11+
* TOC
12+
{:toc}
13+
14+
- Update to RFC 8359 for JSON specification
15+
- Add the concept of formal vocabularies, and how they can be recognized through meta-schemas
16+
- Formalized annotation collection
17+
- Moved applicator keywords from the Validation specification as their own vocabulary
18+
- Define "$ref" behavior in terms of the assertion, applicator, and annotation model
19+
- Note undefined behavior for "$ref" targets involving unknown keywords
20+
- Additional guidance on initial base URIs beyond network retrieval
21+
- Allow "schema" media type parameter for "application/schema+json"
22+
23+
### Keywords
24+
25+
* Eight brand new keywords were added
26+
* One keyword was renamed
27+
* One keyword was split in half
28+
* One keyword in Core changed behavior
29+
* One keyword in Hyper-Schema changed behavior
30+
31+
keyword | change | notes
32+
---- | ---- | ----
33+
[`"definitions"`](json-schema-core.html#rfc.section.TODO) | **renamed** | use new "$defs" core keyword
34+
[`"unevaluatedProperties" and "unevaluatedItems"`](json-schema-core.html#rfc.section.TODO) | **added** |
35+
[`"$ref"`](json-schema-core.html#rfc.section.TODO) | **changed** | can now have siblings (keywords next to it)
36+
[`"$defs"`](json-schema-core.html#rfc.section.10.TODO) | **added** | moved over to core from validation
37+
`"dependencies"` | **removed** | use "dependentRequired" or "dependentSchemas"
38+
[`"dependentRequired"`](json-schema-core.html#rfc.section.10.TODO) | **added** | added to core schema
39+
[`"dependentSchemas"`](json-schema-core.html#rfc.section.10.TODO) | **added** | added to core schema
40+
[`"minContains" and "maxContains"`](json-schema-validation.html#rfc.section.TODO) | added |
41+
[`"contentSchema"`](json-schema-validation.html#rfc.section.TODO) | added | allows applying a schema to a string-encoded document
42+
[`"deprecated"`](json-schema-validation.html#rfc.section.TODO) | added |
43+
[`"rel"`](json-schema-hyperschema.html#rfc.section.TODO) | **changed** | Can now be an array of values instead of just a string
44+
45+
### Formats
46+
47+
Two formats were added.
48+
49+
format | change | notes
50+
---- | ---- | ----
51+
[`"uuid"`](json-schema-validation.html#rfc.section.7.3.5) | added | A string instance is valid against this attribute if it is a valid string representation of a UUID, according to RFC4122
52+
[`"duration"`](json-schema-validation.html#rfc.section.7.3.5) | added | The duration format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339

work-in-progress/index.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,21 @@ permalink: /work-in-progress
77
* TOC
88
{:toc}
99

10-
## The Next Draft (by whatever name) Is Ready for Final Pre-Publication Review!
10+
## The Next Draft is Ready for Final Pre-Publication Review!
1111

1212
The forthcoming draft is now feature-frozen and has gone through the initial four-week pre-publication review period.
1313

1414
_**UPDATE: July 28th, 2019** We continue to incorporate feedback and clarify sections of the new draft. We expect to finally publish the draft during August._
1515

16+
To see what changes are involved, read the [release notes](./WIP-json-schema-release-notes.md).
17+
1618
The following sorts of feedback are particularly desired:
1719

1820
* Clarity, readability, and accessibility to new readers
1921
* Contradictions, inconsistencies and other bugs
2022
* Anything so egregious that implementation would be infeasible or impossible
2123

22-
New features or major changes to existing features will be deferred to a future draft,
23-
and work on the next draft will begin immediately after this one is published.
24+
Work on the next draft will begin immediately after this one is published.
2425

2526
## What Is This Draft Called, Anyway?
2627

@@ -88,9 +89,9 @@ _**NOTE:** when published, the `.json` will be removed from the final URI_
8889
* [WIP: meta/meta-data.json](/work-in-progress/meta/WIP-meta-data.json) (meta-data annotations, from the validation spec)
8990
* [WIP: meta/format.json](/work-in-progress/meta/WIP-format.json) (the format keyword, from the validation spec)
9091
* [WIP: meta/content.json](/work-in-progress/meta/WIP-content.json) (content keywords, from the validation spec)
91-
* [WIP: meta/hyper-schema.json](/work-in-progress/meta/WIP-hyper-schema.json) (hyper-schema keywords, from the hyper-shema spec)
92+
* [WIP: meta/hyper-schema.json](/work-in-progress/meta/WIP-hyper-schema.json) (hyper-schema keywords, from the hyper-schema spec)
9293

93-
### Output schema:
94+
### Output Schema
9495

9596
The new draft also introduces recommended output formats for reporting errors and annotations.
9697

@@ -100,12 +101,12 @@ _**NOTE:** when published, the `.json` will be removed from the final URI_
100101
* [WIP: verbose-example.json](/work-in-progress/output/WIP-verbose-example.json) (example of the most verbose output format)
101102
* [WIP: hyper-schema.json](/work-in-progress/output/WIP-hyper-schema.json) (format used by the proposed hyper-schema test suite, and used in examples in the specification)
102103

103-
## Providing Feedback and Tracking Progress in GitHub
104+
## Get Involved
104105

105106
We are **particularly interested** in feedback on whether the wording and concepts is an
106107
improvement in terms of how easy it is to understand and learn the specifications.
107108

108-
Note that _all drafts have Changelog appendicies_, for a concise list of notable changes.
109+
Note that _all drafts have Changelog appendices_, for a concise list of notable changes.
109110

110111
* The active sources are on the
111112
["master" branch of json-schema-org/json-schema-spec](https://github.com/json-schema-org/json-schema-spec)
@@ -117,4 +118,3 @@ Note that _all drafts have Changelog appendicies_, for a concise list of notable
117118
* [file an issue](https://github.com/json-schema-org/json-schema-spec/issues/new?milestone=draft-08)
118119
or [join us on Slack](https://join.slack.com/t/json-schema/shared_invite/enQtMjk1NDcyNDI2NTAwLTcyYmYwMjdmMmUxNzZjYzIxNGU2YjdkNzdlOGZiNjIwNDI2M2Y3NmRkYjA4YmMwODMwYjgyOTFlNWZjZjAyNjg) to submit feedback
119120
_(technically there is also a [mailing list](https://groups.google.com/forum/#!forum/json-schema) but it gets very little traffic and is not closely monitored)_
120-

0 commit comments

Comments
 (0)