| { |
| "$schema": "http://json-schema.org/draft-06/schema#", |
| "description": "Schema for tests", |
| "type": "array", |
| "items": { |
| "type": "object", |
| "required": [ "description", "schema", "tests" ], |
| "properties": { |
| "id": { |
| "description": "Uniquely identifies a set of tests", |
| "type": "string", |
| "format": "uri" |
| }, |
| "description": { |
| "description": "The test set description", |
| "type": "string" |
| }, |
| "comment": { |
| "description": "Any additional comments about the test set", |
| "type": "string" |
| }, |
| "schema": { |
| "description": "This should be a valid schema. This should be a ref to a meta-schema if schema keywords need testing." |
| }, |
| "tests": { |
| "description": "A set of related tests all using the same schema", |
| "type": "array", |
| "items": { "$ref": "#/definitions/test" }, |
| "minItems": 1 |
| } |
| }, |
| "additionalProperties": false, |
| "minItems": 1 |
| }, |
| "definitions": { |
| "outputItem": { |
| "type": "object", |
| "properties": { |
| "valid": { "type": "boolean" }, |
| "keywordLocation": { "type": "string" }, |
| "absoluteKeywordLocation": { |
| "type": "string", |
| "format": "uri" |
| }, |
| "instanceLocation": { "type": "string" }, |
| "annotations": { |
| "type": "array", |
| "items": { "$ref": "#/definitions/outputItem" } |
| }, |
| "errors": { |
| "type": "array", |
| "items": { "$ref": "#/definitions/outputItem" } |
| } |
| } |
| }, |
| "test": { |
| "description": "A single test", |
| "type": "object", |
| "required": [ "description", "data", "valid" ], |
| "properties": { |
| "id": { |
| "description": "Uniquely identifies a single test", |
| "type": "string", |
| "format": "uri" |
| }, |
| "description": { |
| "description": "The test description", |
| "type": "string" |
| }, |
| "comment": { |
| "description": "Any additional comments about the test", |
| "type": "string" |
| }, |
| "data": { |
| "description": "This is the instance to be validated against the schema in \"schema\"." |
| }, |
| "valid": { "type": "boolean" }, |
| "output": { |
| "type": "object", |
| "required": [ "basic", "detailed", "verbose" ], |
| "properties": { |
| "basic": { "$ref": "#/definitions/outputItem" }, |
| "detailed": { "$ref": "#/definitions/outputItem" }, |
| "verbose": { "$ref": "#/definitions/outputItem" } |
| } |
| } |
| }, |
| "additionalProperties": false |
| } |
| } |
| } |