xref: /aosp_15_r20/external/json-schema-validator/src/test/resources/schema/issue313-v7.json (revision 78c4dd6aa35290980cdcd1623a7e337e8d021c7c)
1{
2  "$schema": "http://json-schema.org/draft-07/schema#",
3  "$id": "http://json-schema.org/draft-07/schema#",
4  "title": "Core schema meta-schema",
5  "definitions": {
6    "schemaArray": {
7      "type": "array",
8      "minItems": 1,
9      "items": { "$ref": "#" }
10    },
11    "nonNegativeInteger": {
12      "type": "integer",
13      "minimum": 0
14    },
15    "nonNegativeIntegerDefault0": {
16      "allOf": [
17        { "$ref": "#/definitions/nonNegativeInteger" },
18        { "default": 0 }
19      ]
20    },
21    "simpleTypes": {
22      "enum": [
23        "array",
24        "boolean",
25        "integer",
26        "null",
27        "number",
28        "object",
29        "string"
30      ]
31    },
32    "stringArray": {
33      "type": "array",
34      "items": { "type": "string" },
35      "uniqueItems": true,
36      "default": []
37    }
38  },
39  "type": ["object", "boolean"],
40  "properties": {
41    "$id": {
42      "type": "string",
43      "format": "uri-reference"
44    },
45    "$schema": {
46      "type": "string",
47      "format": "uri"
48    },
49    "$ref": {
50      "type": "string",
51      "format": "uri-reference"
52    },
53    "$comment": {
54      "type": "string"
55    },
56    "title": {
57      "type": "string"
58    },
59    "description": {
60      "type": "string"
61    },
62    "default": true,
63    "readOnly": {
64      "type": "boolean",
65      "default": false
66    },
67    "writeOnly": {
68      "type": "boolean",
69      "default": false
70    },
71    "examples": {
72      "type": "array",
73      "items": true
74    },
75    "multipleOf": {
76      "type": "number",
77      "exclusiveMinimum": 0
78    },
79    "maximum": {
80      "type": "number"
81    },
82    "exclusiveMaximum": {
83      "type": "number"
84    },
85    "minimum": {
86      "type": "number"
87    },
88    "exclusiveMinimum": {
89      "type": "number"
90    },
91    "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
92    "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
93    "pattern": {
94      "type": "string",
95      "format": "regex"
96    },
97    "additionalItems": { "$ref": "#" },
98    "items": {
99      "anyOf": [
100        { "$ref": "#" },
101        { "$ref": "#/definitions/schemaArray" }
102      ],
103      "default": true
104    },
105    "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
106    "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
107    "uniqueItems": {
108      "type": "boolean",
109      "default": false
110    },
111    "contains": { "$ref": "#" },
112    "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
113    "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
114    "required": { "$ref": "#/definitions/stringArray" },
115    "additionalProperties": { "$ref": "#" },
116    "definitions": {
117      "type": "object",
118      "additionalProperties": { "$ref": "#" },
119      "default": {}
120    },
121    "properties": {
122      "type": "object",
123      "additionalProperties": { "$ref": "#" },
124      "default": {}
125    },
126    "patternProperties": {
127      "type": "object",
128      "additionalProperties": { "$ref": "#" },
129      "propertyNames": { "format": "regex" },
130      "default": {}
131    },
132    "dependencies": {
133      "type": "object",
134      "additionalProperties": {
135        "anyOf": [
136          { "$ref": "#" },
137          { "$ref": "#/definitions/stringArray" }
138        ]
139      }
140    },
141    "propertyNames": { "$ref": "#" },
142    "const": true,
143    "enum": {
144      "type": "array",
145      "items": true,
146      "minItems": 1,
147      "uniqueItems": true
148    },
149    "type": {
150      "anyOf": [
151        { "$ref": "#/definitions/simpleTypes" },
152        {
153          "type": "array",
154          "items": { "$ref": "#/definitions/simpleTypes" },
155          "minItems": 1,
156          "uniqueItems": true
157        }
158      ]
159    },
160    "format": { "type": "string" },
161    "contentMediaType": { "type": "string" },
162    "contentEncoding": { "type": "string" },
163    "if": { "$ref": "#" },
164    "then": { "$ref": "#" },
165    "else": { "$ref": "#" },
166    "allOf": { "$ref": "#/definitions/schemaArray" },
167    "anyOf": { "$ref": "#/definitions/schemaArray" },
168    "oneOf": { "$ref": "#/definitions/schemaArray" },
169    "not": { "$ref": "#" }
170  },
171  "default": true
172}
173