1{
2    "$schema": "http://json-schema.org/draft-04/schema#",
3    "id": "4.4-styleClass.json",
4    "assertionType": "may",
5    "expectedResult": "valid",
6    "onUnexpectedResult" : "passAndContinue",
7    "errorMessage": "The description of a Specific Resource may include styleClass key with one or more values.",
8    "title": "Implements **Specific Resource _styleClass_ key** with one or more values on a **Specific Resource** - [model 4.4](https://www.w3.org/TR/annotation-model/#styles)",
9    "description": "True when Annotation includes one or more Specific Resources, one or more of which include styleClass key with value(s). (Section 4.4)",
10    "type": "object",
11    "anyOf":
12     [
13      { "properties":
14         { "body":
15            { "oneOf":
16               [
17                 { "type": "object",
18                   "oneOf":
19                    [
20                      { "$ref": "specificResource.json#/definitions/styleClassDetected" },
21                      { "$ref": "#/definitions/itemSchema" }
22                    ]
23                 },
24                 { "type": "array",
25                   "minItems": 1,
26                   "not":
27                    { "items":
28                       { "not":
29                          { "oneOf":
30                             [
31                               { "$ref": "specificResource.json#/definitions/styleClassDetected" },
32                               { "$ref": "#/definitions/itemSchema" }
33                             ]
34                          }
35                       }
36                    }
37                 }
38               ]
39            }
40         },
41         "required": [ "body" ]
42      },
43      { "properties":
44         { "target":
45            { "oneOf":
46               [
47                 { "type": "object",
48                   "oneOf":
49                    [
50                      { "$ref": "specificResource.json#/definitions/styleClassDetected" },
51                      { "$ref": "#/definitions/itemSchema" }
52                    ]
53                 },
54                 { "type": "array",
55                   "minItems": 1,
56                   "not":
57                    { "items":
58                        { "not":
59                           { "oneOf":
60                              [
61                                { "$ref": "specificResource.json#/definitions/styleClassDetected" },
62                                { "$ref": "#/definitions/itemSchema" }
63                              ]
64                           }
65                        }
66                    }
67                 }
68               ]
69            }
70         },
71     "required": [ "target" ]
72       }
73     ],
74     "definitions":
75      {
76        "itemSchema":
77         { "type": "object",
78           "properties":
79            { "items":
80               { "type": "array",
81                 "minItems": 1,
82                 "not":
83                  { "items":
84                      { "not": { "$ref": "specificResource.json#/definitions/styleClassDetected" } }
85                  }
86               }
87            },
88            "required": [ "items" ]
89         }
90      }
91}