JAL-1759 merge from develop
[jalview.git] / examples / biojson-doc / tests / schema.json
1 [
2     {
3         "schema": {
4             "id": "http://json-schema.org/draft-04/schema#",
5             "$schema": "http://json-schema.org/draft-04/schema#",
6             "description": "Core schema meta-schema",
7             "definitions": {
8                 "schemaArray": {
9                     "type": "array",
10                     "minItems": 1,
11                     "items": { "$ref": "#" }
12                 },
13                 "positiveInteger": {
14                     "type": "integer",
15                     "minimum": 0
16                 },
17                 "positiveIntegerDefault0": {
18                     "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
19                 },
20                 "simpleTypes": {
21                     "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
22                 },
23                 "stringArray": {
24                     "type": "array",
25                     "items": { "type": "string" },
26                     "minItems": 1,
27                     "uniqueItems": true
28                 }
29             },
30             "type": "object",
31             "properties": {
32                 "id": {
33                     "type": "string",
34                     "format": "uri"
35                 },
36                 "$schema": {
37                     "type": "string",
38                     "format": "uri"
39                 },
40                 "title": {
41                     "type": "string"
42                 },
43                 "description": {
44                     "type": "string"
45                 },
46                 "default": {},
47                 "multipleOf": {
48                     "type": "number",
49                     "minimum": 0,
50                     "exclusiveMinimum": true
51                 },
52                 "maximum": {
53                     "type": "number"
54                 },
55                 "exclusiveMaximum": {
56                     "type": "boolean",
57                     "default": false
58                 },
59                 "minimum": {
60                     "type": "number"
61                 },
62                 "exclusiveMinimum": {
63                     "type": "boolean",
64                     "default": false
65                 },
66                 "maxLength": { "$ref": "#/definitions/positiveInteger" },
67                 "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
68                 "pattern": {
69                     "type": "string",
70                     "format": "regex"
71                 },
72                 "additionalItems": {
73                     "anyOf": [
74                         { "type": "boolean" },
75                         { "$ref": "#" }
76                     ],
77                     "default": {}
78                 },
79                 "items": {
80                     "anyOf": [
81                         { "$ref": "#" },
82                         { "$ref": "#/definitions/schemaArray" }
83                     ],
84                     "default": {}
85                 },
86                 "maxItems": { "$ref": "#/definitions/positiveInteger" },
87                 "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
88                 "uniqueItems": {
89                     "type": "boolean",
90                     "default": false
91                 },
92                 "maxProperties": { "$ref": "#/definitions/positiveInteger" },
93                 "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
94                 "required": { "$ref": "#/definitions/stringArray" },
95                 "additionalProperties": {
96                     "anyOf": [
97                         { "type": "boolean" },
98                         { "$ref": "#" }
99                     ],
100                     "default": {}
101                 },
102                 "definitions": {
103                     "type": "object",
104                     "additionalProperties": { "$ref": "#" },
105                     "default": {}
106                 },
107                 "properties": {
108                     "type": "object",
109                     "additionalProperties": { "$ref": "#" },
110                     "default": {}
111                 },
112                 "patternProperties": {
113                     "type": "object",
114                     "additionalProperties": { "$ref": "#" },
115                     "default": {}
116                 },
117                 "dependencies": {
118                     "type": "object",
119                     "additionalProperties": {
120                         "anyOf": [
121                             { "$ref": "#" },
122                             { "$ref": "#/definitions/stringArray" }
123                         ]
124                     }
125                 },
126                 "enum": {
127                     "type": "array",
128                     "minItems": 1,
129                     "uniqueItems": true
130                 },
131                 "type": {
132                     "anyOf": [
133                         { "$ref": "#/definitions/simpleTypes" },
134                         {
135                             "type": "array",
136                             "items": { "$ref": "#/definitions/simpleTypes" },
137                             "minItems": 1,
138                             "uniqueItems": true
139                         }
140                     ]
141                 },
142                 "allOf": { "$ref": "#/definitions/schemaArray" },
143                 "anyOf": { "$ref": "#/definitions/schemaArray" },
144                 "oneOf": { "$ref": "#/definitions/schemaArray" },
145                 "not": { "$ref": "#" }
146             },
147             "dependencies": {
148                 "exclusiveMaximum": [ "maximum" ],
149                 "exclusiveMinimum": [ "minimum" ]
150             },
151             "default": {}
152         }
153
154     }]