Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Update metaschemas

  • Loading branch information...
commit e14e3340c2c2e4f579cd3635b9b4e0e278161b7a 1 parent 84a4317
@fge fge authored
Showing with 254 additions and 232 deletions.
  1. +155 −57 draft-04/hyper-schema
  2. +0 −41 draft-04/links
  3. +99 −134 draft-04/schema
View
212 draft-04/hyper-schema
@@ -1,60 +1,158 @@
{
- "$schema" : "http://json-schema.org/draft-04/hyper-schema#",
- "extends" : {"$ref" : "http://json-schema.org/draft-04/schema#"},
- "id" : "http://json-schema.org/draft-04/hyper-schema#",
+ "$schema": "http://json-schema.org/draft-04/hyper-schema#",
+ "id": "http://json-schema.org/draft-04/hyper-schema#",
+ "title": "JSON Hyper-Schema",
+ "allOf": [
+ {
+ "$ref": "http://json-schema.org/draft-04/schema#"
+ }
+ ],
+ "properties": {
+ "additionalItems": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "$ref": "#"
+ }
+ ]
+ },
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "$ref": "#"
+ }
+ ]
+ },
+ "dependencies": {
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "$ref": "#"
+ },
+ {
+ "type": "array"
+ }
+ ]
+ }
+ },
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#"
+ },
+ {
+ "$ref": "#/definitions/schemaArray"
+ }
+ ]
+ },
+ "definitions": {
+ "additionalProperties": {
+ "$ref": "#"
+ }
+ },
+ "patternProperties": {
+ "additionalProperties": {
+ "$ref": "#"
+ }
+ },
+ "properties": {
+ "additionalProperties": {
+ "$ref": "#"
+ }
+ },
+ "allOf": {
+ "$ref": "#/definitions/schemaArray"
+ },
+ "anyOf": {
+ "$ref": "#/definitions/schemaArray"
+ },
+ "oneOf": {
+ "$ref": "#/definitions/schemaArray"
+ },
+ "not": {
+ "$ref": "#"
+ },
- "properties" : {
- "links" : {
- "type" : "array",
- "items" : {"$ref" : "http://json-schema.org/draft-04/links#"}
- },
-
- "fragmentResolution" : {
- "type" : "string",
- "default" : "json-pointer"
- },
-
- "root" : {
- "type" : "boolean",
- "default" : false
- },
-
- "readonly" : {
- "type" : "boolean",
- "default" : false
- },
-
- "contentEncoding" : {
- "type" : "string"
- },
-
- "pathStart" : {
- "type" : "string",
- "format" : "uri"
- },
-
- "mediaType" : {
- "type" : "string",
- "format" : "media-type"
- }
- },
-
- "links" : [
- {
- "href" : "{id}",
- "rel" : "self"
- },
-
- {
- "href" : "{$ref}",
- "rel" : "full"
- },
-
- {
- "href" : "{$schema}",
- "rel" : "describedby"
- }
- ],
-
- "fragmentResolution" : "json-pointer"
+ "links": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/linkDescription"
+ }
+ },
+ "fragmentResolution": {
+ "type": "string"
+ },
+ "media": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "A media type, as described in RFC 2046",
+ "type": "string"
+ },
+ "binaryEncoding": {
+ "description": "A content encoding scheme, as described in RFC 2045",
+ "type": "string"
+ }
+ }
+ },
+ "pathStart": {
+ "description": "Instances' URIs must start with this value for this schema to apply to them",
+ "type": "string",
+ "format": "uri"
+ }
+ },
+ "definitions": {
+ "schemaArray": {
+ "type": "array",
+ "items": {
+ "$ref": "#"
+ }
+ },
+ "linkDescription": {
+ "title": "Link Description Object",
+ "type": "object",
+ "required": [ "href", "rel" ],
+ "properties": {
+ "href": {
+ "description": "a URI template, as defined by RFC 6570, with the addition of the $, ( and ) characters for pre-processing",
+ "type": "string"
+ },
+ "rel": {
+ "description": "relation to the target resource of the link",
+ "type": "string"
+ },
+ "title": {
+ "description": "a title for the link",
+ "type": "string"
+ },
+ "targetSchema": {
+ "description": "JSON Schema describing the link target",
+ "$ref": "#"
+ },
+ "mediaType": {
+ "description": "media type (as defined by RFC 2046) describing the link target",
+ "type": "string"
+ },
+ "method": {
+ "description": "method for requesting the target of the link (e.g. for HTTP this might be \"GET\" or \"DELETE\")",
+ "type": "string"
+ },
+ "encType": {
+ "description": "The media type in which to submit data along with the request",
+ "type": "string",
+ "default": "application/json"
+ },
+ "schema": {
+ "description": "Schema describing the data to submit along with the request",
+ "$ref": "#"
+ }
+ }
+ }
+ }
}
+
View
41 draft-04/links
@@ -1,41 +0,0 @@
-{
- "$schema" : "http://json-schema.org/draft-04/hyper-schema#",
- "id" : "http://json-schema.org/draft-04/links#",
- "type" : "object",
-
- "properties" : {
- "rel" : {
- "type" : "string"
- },
-
- "href" : {
- "type" : "string"
- },
-
- "template" : {
- "type" : "string"
- },
-
- "targetSchema" : {"$ref" : "http://json-schema.org/draft-04/hyper-schema#"},
-
- "method" : {
- "type" : "string",
- "default" : "GET"
- },
-
- "enctype" : {
- "type" : "string"
- },
-
- "properties" : {
- "type" : "object",
- "additionalProperties" : {"$ref" : "http://json-schema.org/draft-04/hyper-schema#"}
- }
- },
-
- "required" : ["rel", "href"],
-
- "dependencies" : {
- "enctype" : "method"
- }
-}
View
233 draft-04/schema
@@ -1,185 +1,150 @@
{
- "$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://json-schema.org/draft-04/schema#",
- "type": "object",
-
- "properties": {
- "type": {
- "type": [ "string", "array" ],
- "items": {
- "type": [ "string", {"$ref": "#"} ]
- },
- "uniqueItems": true,
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "description": "Core schema meta-schema",
+ "definitions": {
+ "schemaArray": {
+ "type": "array",
"minItems": 1,
- "default": "any"
- },
-
- "disallow": {
- "type": [ "string", "array" ],
- "items": {
- "type": [ "string", { "$ref": "#" } ]
- },
- "uniqueItems": true,
- "minItems": 1
- },
-
- "extends": {
- "type": [ {"$ref": "#" }, "array" ],
- "items": { "$ref": "#" },
- "default": {}
+ "items": { "$ref": "#" }
},
-
- "enum": {
+ "positiveInteger": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "positiveIntegerDefault0": {
+ "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
+ },
+ "simpleTypes": {
+ "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
+ },
+ "stringArray": {
"type": "array",
+ "items": { "type": "string" },
"minItems": 1,
"uniqueItems": true
+ }
+ },
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "uri"
},
-
- "minimum": {
- "type": "number"
+ "$schema": {
+ "type": "string",
+ "format": "uri"
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "default": {},
+ "multipleOf": {
+ "type": "number",
+ "minimum": 0,
+ "exclusiveMinimum": true
},
-
"maximum": {
"type": "number"
},
-
- "exclusiveMinimum": {
- "type": "boolean",
- "default": false
- },
-
"exclusiveMaximum": {
"type": "boolean",
"default": false
},
-
- "mod": {
- "type": "number",
- "minimum": 0,
- "exclusiveMinimum": true,
- "default": 1
- },
-
- "minLength": {
- "type": "integer",
- "minimum": 0,
- "default": 0
+ "minimum": {
+ "type": "number"
},
-
- "maxLength": {
- "type": "integer"
+ "exclusiveMinimum": {
+ "type": "boolean",
+ "default": false
},
-
+ "maxLength": { "$ref": "#/definitions/positiveInteger" },
+ "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
"pattern": {
"type": "string",
"format": "regex"
},
-
- "items": {
- "type": [ { "$ref": "#" }, "array" ],
- "items": {"$ref": "#"},
- "default": {}
- },
-
"additionalItems": {
- "type": [ { "$ref": "#" }, "boolean" ],
+ "anyOf": [
+ { "type": "boolean" },
+ { "$ref": "#" }
+ ],
"default": {}
},
-
- "minItems": {
- "type": "integer",
- "minimum": 0,
- "default": 0
- },
-
- "maxItems": {
- "type": "integer",
- "minimum": 0
+ "items": {
+ "anyOf": [
+ { "$ref": "#" },
+ { "$ref": "#/definitions/schemaArray" }
+ ],
+ "default": {}
},
-
+ "maxItems": { "$ref": "#/definitions/positiveInteger" },
+ "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
"uniqueItems": {
"type": "boolean",
"default": false
},
-
- "properties": {
+ "maxProperties": { "$ref": "#/definitions/positiveInteger" },
+ "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
+ "required": { "$ref": "#/definitions/stringArray" },
+ "additionalProperties": {
+ "anyOf": [
+ { "type": "boolean" },
+ { "$ref": "#" }
+ ],
+ "default": {}
+ },
+ "definitions": {
"type": "object",
"additionalProperties": { "$ref": "#" },
"default": {}
},
-
- "patternProperties": {
+ "properties": {
"type": "object",
"additionalProperties": { "$ref": "#" },
"default": {}
},
-
- "additionalProperties": {
- "type": [ {"$ref": "#" }, "boolean" ],
+ "patternProperties": {
+ "type": "object",
+ "additionalProperties": { "$ref": "#" },
"default": {}
},
-
- "minProperties": {
- "type": "integer",
- "minimum": 0,
- "default": 0
- },
-
- "maxProperties": {
- "type": "integer",
- "minimum": 0
- },
-
- "required": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
-
"dependencies": {
"type": "object",
"additionalProperties": {
- "type": [ "string", "array", { "$ref": "#" } ],
- "items": {
- "type": "string"
- }
- },
- "default": {}
- },
-
- "id": {
- "type": "string",
- "format": "uri"
- },
-
- "$ref": {
- "type": "string",
- "format": "uri"
- },
-
- "$schema": {
- "type": "string",
- "format": "uri"
+ "anyOf": [
+ { "$ref": "#" },
+ { "$ref": "#/definitions/stringArray" }
+ ]
+ }
},
-
- "title": {
- "type": "string"
+ "enum": {
+ "type": "array",
+ "minItems": 1,
+ "uniqueItems": true
},
-
- "description": {
- "type": "string"
+ "type": {
+ "anyOf": [
+ { "$ref": "#/definitions/simpleTypes" },
+ {
+ "type": "array",
+ "items": { "$ref": "#/definitions/simpleTypes" },
+ "minItems": 1,
+ "uniqueItems": true
+ }
+ ]
},
-
- "default": {
- "type": "any"
- }
+ "allOf": { "$ref": "#/definitions/schemaArray" },
+ "anyOf": { "$ref": "#/definitions/schemaArray" },
+ "oneOf": { "$ref": "#/definitions/schemaArray" },
+ "not": { "$ref": "#" }
},
-
"dependencies": {
- "exclusiveMinimum": "minimum",
- "exclusiveMaximum": "maximum"
+ "exclusiveMaximum": [ "maximum" ],
+ "exclusiveMinimum": [ "minimum" ]
},
-
"default": {}
}
Please sign in to comment.
Something went wrong with that request. Please try again.