{ "$schema": "http://json-schema.org/draft-04/schema#", "id": "4.2.8-rangeSelector.json", "assertionType": "may", "expectedResult": "valid", "onUnexpectedResult" : "passAndContinue", "errorMessage": "The description of a Specific Resource may include rangeSelector .", "title": "Implements **Specific Resource Range Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", "description": "True when Annotation includes one or more Specific Resources, one or more of which includes a rangeSelector. (Section 4.2.8)", "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" } ] } } } } ] } } } ], "definitions": { "selectorSchema": { "type": "object", "properties": { "selector": { "oneOf": [ { "type": "object", "$ref": "specificResource.json#/definitions/rangeSelectorDetected" }, { "type": "array", "minItems": 1, "not": { "items": { "not": { "$ref": "specificResource.json#/definitions/rangeSelectorDetected" } } } } ] } }, "required": [ "selector" ] }, "itemSchema": { "type": "object", "properties": { "items": { "type": "array", "minItems": 1, "not": { "items": { "not": { "$ref": "#/definitions/selectorSchema" } } } } }, "required": [ "items" ] } } }