json-schema-draft-06.json 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. {
  2. "$schema": "http://json-schema.org/draft-06/schema#",
  3. "$id": "http://json-schema.org/draft-06/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. "title": {
  54. "type": "string"
  55. },
  56. "description": {
  57. "type": "string"
  58. },
  59. "default": {},
  60. "multipleOf": {
  61. "type": "number",
  62. "exclusiveMinimum": 0
  63. },
  64. "maximum": {
  65. "type": "number"
  66. },
  67. "exclusiveMaximum": {
  68. "type": "number"
  69. },
  70. "minimum": {
  71. "type": "number"
  72. },
  73. "exclusiveMinimum": {
  74. "type": "number"
  75. },
  76. "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
  77. "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
  78. "pattern": {
  79. "type": "string",
  80. "format": "regex"
  81. },
  82. "additionalItems": { "$ref": "#" },
  83. "items": {
  84. "anyOf": [
  85. { "$ref": "#" },
  86. { "$ref": "#/definitions/schemaArray" }
  87. ],
  88. "default": {}
  89. },
  90. "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
  91. "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
  92. "uniqueItems": {
  93. "type": "boolean",
  94. "default": false
  95. },
  96. "contains": { "$ref": "#" },
  97. "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
  98. "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
  99. "required": { "$ref": "#/definitions/stringArray" },
  100. "additionalProperties": { "$ref": "#" },
  101. "definitions": {
  102. "type": "object",
  103. "additionalProperties": { "$ref": "#" },
  104. "default": {}
  105. },
  106. "properties": {
  107. "type": "object",
  108. "additionalProperties": { "$ref": "#" },
  109. "default": {}
  110. },
  111. "patternProperties": {
  112. "type": "object",
  113. "additionalProperties": { "$ref": "#" },
  114. "default": {}
  115. },
  116. "dependencies": {
  117. "type": "object",
  118. "additionalProperties": {
  119. "anyOf": [
  120. { "$ref": "#" },
  121. { "$ref": "#/definitions/stringArray" }
  122. ]
  123. }
  124. },
  125. "propertyNames": { "$ref": "#" },
  126. "const": {},
  127. "enum": {
  128. "type": "array",
  129. "minItems": 1,
  130. "uniqueItems": true
  131. },
  132. "type": {
  133. "anyOf": [
  134. { "$ref": "#/definitions/simpleTypes" },
  135. {
  136. "type": "array",
  137. "items": { "$ref": "#/definitions/simpleTypes" },
  138. "minItems": 1,
  139. "uniqueItems": true
  140. }
  141. ]
  142. },
  143. "format": { "type": "string" },
  144. "allOf": { "$ref": "#/definitions/schemaArray" },
  145. "anyOf": { "$ref": "#/definitions/schemaArray" },
  146. "oneOf": { "$ref": "#/definitions/schemaArray" },
  147. "not": { "$ref": "#" }
  148. },
  149. "default": {}
  150. }