xref: /aosp_15_r20/external/json-schema-validator/src/test/suite/output-tests/draft-next/output-schema.json (revision 78c4dd6aa35290980cdcd1623a7e337e8d021c7c)
1{
2  "$schema": "https://json-schema.org/draft/next/schema",
3  "$id": "https://json-schema.org/draft/next/output/schema",
4  "description": "A schema that validates the minimum requirements for validation output",
5
6  "anyOf": [
7    { "$ref": "#/$defs/flag" },
8    { "$ref": "#/$defs/basic" },
9    { "$ref": "#/$defs/hierarchical" }
10  ],
11  "$defs": {
12    "outputUnit":{
13      "properties": {
14        "valid": { "type": "boolean" },
15        "evaluationPath": {
16          "type": "string",
17          "format": "json-pointer"
18        },
19        "schemaLocation": {
20          "type": "string",
21          "format": "uri"
22        },
23        "instanceLocation": {
24          "type": "string",
25          "format": "json-pointer"
26        },
27        "details": {
28          "$ref": "#/$defs/outputUnitArray"
29        },
30        "annotations": {
31          "type": "object",
32          "additionalProperties": true
33        },
34        "droppedAnnotations": {
35          "type": "object",
36          "additionalProperties": true
37        },
38        "errors": {
39          "type": "object",
40          "additionalProperties": { "type": "string" }
41        }
42      },
43      "required": [ "valid", "evaluationPath", "schemaLocation", "instanceLocation" ],
44      "allOf": [
45        {
46          "if": {
47            "anyOf": [
48              {
49                "required": [ "errors" ]
50              },
51              {
52                "required": [ "droppedAnnotations" ]
53              }
54            ]
55          },
56          "then": {
57            "properties": {
58              "valid": { "const": false }
59            }
60          }
61        },
62        {
63          "if": {
64            "required": [ "annotations" ]
65          },
66          "then": {
67            "properties": {
68              "valid": { "const": true }
69            }
70          }
71        }
72      ]
73    },
74    "outputUnitArray": {
75      "type": "array",
76      "items": { "$ref": "#/$defs/outputUnit" }
77    },
78    "flag": {
79      "properties": {
80        "valid": { "type": "boolean" }
81      },
82      "required": [ "valid" ]
83    },
84    "basic": {
85      "properties": {
86        "valid": { "type": "boolean" },
87        "details": {
88          "$ref": "#/$defs/outputUnitArray"
89        }
90      },
91      "required": [ "valid", "details" ]
92    },
93    "hierarchical": { "$ref": "#/$defs/outputUnit" }
94  }
95}
96