| { |
| "$schema": "http://json-schema.org/draft-04/schema#", |
| "id": "4.2.1-conformsTo.json", |
| "assertionType": "should", |
| "expectedResult": "valid", |
| "onUnexpectedResult" : "passAndContinue", |
| "errorMessage": "The description of a FragmentSelector should include conformsTo key with a single value that is of format uri.", |
| "title": "Implements **Specific Resource _conformsTo_ key** with a **single value** which is of **format uri** on a **Specific Resource FragmentSelector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", |
| "description": "True when Annotation includes one or more FragmentSelectors, one or more of which include conformsTo key with a single value of format uri. (Section 4.2.1)", |
| "type": "object", |
| "anyOf": |
| [ |
| { "properties": |
| { "body": |
| { "oneOf": |
| [ |
| { "type": "object", |
| "oneOf": |
| [ |
| { "$ref": "#/definitions/selectorSchema" }, |
| { "$ref": "#/definitions/itemSchema" } |
| ] |
| }, |
| { "type": "array", |
| "minItems": 1, |
| "not": |
| { "items": |
| { "not": |
| { "oneOf": |
| [ |
| { "$ref": "#/definitions/selectorSchema" }, |
| { "$ref": "#/definitions/itemSchema" } |
| ] |
| } |
| } |
| } |
| } |
| ] |
| } |
| }, |
| "required": [ "body" ] |
| }, |
| { "properties": |
| { "target": |
| { "oneOf": |
| [ |
| { "type": "object", |
| "oneOf": |
| [ |
| { "$ref": "#/definitions/selectorSchema" }, |
| { "$ref": "#/definitions/itemSchema" } |
| ] |
| }, |
| { "type": "array", |
| "minItems": 1, |
| "not": |
| { "items": |
| { "not": |
| { "oneOf": |
| [ |
| { "$ref": "#/definitions/selectorSchema" }, |
| { "$ref": "#/definitions/itemSchema" } |
| ] |
| } |
| } |
| } |
| } |
| ] |
| } |
| }, |
| "required": [ "target" ] |
| } |
| ], |
| "definitions": |
| { |
| "selectorSchema": |
| { "type": "object", |
| "properties": |
| { "selector": |
| { "oneOf": |
| [ |
| { "type": "object", |
| "$ref": "specificResource.json#/definitions/conformsToPropertyFound" |
| }, |
| { "type": "array", |
| "minItems": 1, |
| "not": |
| { "items": |
| { "not": { "$ref": "specificResource.json#/definitions/conformsToPropertyFound" } } |
| } |
| } |
| ] |
| } |
| }, |
| "required": [ "selector" ] |
| }, |
| |
| "itemSchema": |
| { "type": "object", |
| "properties": |
| { "items": |
| { "type": "array", |
| "minItems": 1, |
| "not": |
| { "items": |
| { "not": { "$ref": "#/definitions/selectorSchema" } } |
| } |
| } |
| }, |
| "required": [ "items" ] |
| } |
| } |
| } |