{ "$schema": "http://json-schema.org/draft-04/schema#", "id": "4.4-styleClassValidIfPresent.json", "assertionType": "must", "expectedResult": "valid", "onUnexpectedResult" : "failAndContinue", "errorMessage": "ERROR: Annotation contains one or more Specific Resources with styleClass key, but does not contain an Annotation-level stylesheet key.", "title": "If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", "description": "True when no Specific Resources styleClass present or all Specific Resource styleClass values are strings / array of strings and Annotation has a stylesheet key. (Section 4.4)", "type": "object", "anyOf": [ { "required": ["stylesheet"] }, { "not": { "anyOf": [ { "$ref": "#/definitions/bodyHasStyleClass" }, { "$ref": "#/definitions/targHasStyleClass" } ] } } ], "definitions": { "bodyHasStyleClass": { "properties": { "body": { "oneOf": [ { "anyOf": [ { "$ref": "specificResource.json#/definitions/styleClassDetected" }, { "$ref": "specificResource.json#/definitions/itemStyleClassPropertyDetected" } ] }, { "not": { "items": { "not": { "anyOf": [ { "$ref": "specificResource.json#/definitions/styleClassDetected" }, { "$ref": "specificResource.json#/definitions/itemStyleClassPropertyDetected" } ] } } } } ] } }, "required": ["body"] }, "targHasStyleClass": { "properties": { "target": { "oneOf": [ { "anyOf": [ { "$ref": "specificResource.json#/definitions/styleClassDetected" }, { "$ref": "specificResource.json#/definitions/itemStyleClassPropertyDetected" } ] }, { "not": { "items": { "not": { "anyOf": [ { "$ref": "specificResource.json#/definitions/styleClassDetected" }, { "$ref": "specificResource.json#/definitions/itemStyleClassPropertyDetected" } ] } } } } ] } }, "required": [ "target" ] } } }