|
| 1 | +--- |
| 2 | +title: JSON Schema Draft-07 Release Notes |
| 3 | +layout: page |
| 4 | +--- |
| 5 | + |
| 6 | +There are a few breaking changes with newer keywords based on community feedback, |
| 7 | +and internally there has been a lot of restructuring through a new concept called |
| 8 | +vocabularies, but on the whole things are mostly the same. |
| 9 | + |
| 10 | +* TOC |
| 11 | +{:toc} |
| 12 | + |
| 13 | +- Update to RFC 8359 for JSON specification |
| 14 | +- Add the concept of formal vocabularies, and how they can be recognized through meta-schemas |
| 15 | +- Formalized annotation collection |
| 16 | +- Moved applicator keywords from the Validation specification as their own vocabulary |
| 17 | +- Define "$ref" behavior in terms of the assertion, applicator, and annotation model |
| 18 | +- Note undefined behavior for "$ref" targets involving unknown keywords |
| 19 | +- Additional guidance on initial base URIs beyond network retrieval |
| 20 | +- Allow "schema" media type parameter for "application/schema+json" |
| 21 | + |
| 22 | +### Keywords |
| 23 | + |
| 24 | +* Eight brand new keywords were added |
| 25 | +* One keyword was renamed |
| 26 | +* One keyword was split in half |
| 27 | +* One keyword in Core changed behavior |
| 28 | +* One keyword in Hyper-Schema changed behavior |
| 29 | + |
| 30 | +keyword | change | notes |
| 31 | +---- | ---- | ---- |
| 32 | +[`"definitions"`](json-schema-core.html#rfc.section.TODO) | **removed** | use new "$defs" core keyword |
| 33 | +[`"unevaluatedProperties" and "unevaluatedItems"`](json-schema-core.html#rfc.section.TODO) | **added** | |
| 34 | +[`"$ref"`](json-schema-core.html#rfc.section.TODO) | **changed** | can now have siblings (keywords next to it) |
| 35 | +[`"$defs"`](json-schema-core.html#rfc.section.10.TODO) | **added** | moved over to core from validation |
| 36 | +`"dependencies"` | **removed** | use "dependentRequired" or "dependentSchemas" |
| 37 | +[`"dependentRequired"`](json-schema-core.html#rfc.section.10.TODO) | **added** | added to core schema |
| 38 | +[`"dependentSchemas"`](json-schema-core.html#rfc.section.10.TODO) | **added** | added to core schema |
| 39 | +[`"applicator"`](json-schema-core.html#rfc.section.10.TODO) | **moved** | from validation to core, but is functionally identical |
| 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 | +Numerous formats were added, clarified, or restored from older drafts. |
| 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 |
0 commit comments