github.com/kaptinlin/jsonschema@v0.4.6/testdata/JSON-Schema-Test-Suite/test-schema.json (about)

     1  {
     2      "$schema": "https://json-schema.org/draft/2020-12/schema",
     3      "$id": "https://json-schema.org/tests/test-schema",
     4      "description": "A schema for files contained within this suite",
     5  
     6      "type": "array",
     7      "minItems": 1,
     8      "items": {
     9          "description": "An individual test case, containing multiple tests of a single schema's behavior",
    10  
    11          "type": "object",
    12          "required": [ "description", "schema", "tests" ],
    13          "properties": {
    14              "description": {
    15                  "description": "The test case description",
    16                  "type": "string"
    17              },
    18              "comment": {
    19                  "description": "Any additional comments about the test case",
    20                  "type": "string"
    21              },
    22              "schema": {
    23                  "description": "A valid JSON Schema (one written for the corresponding version directory that the file sits within)."
    24              },
    25              "tests": {
    26                  "description": "A set of related tests all using the same schema",
    27                  "type": "array",
    28                  "items": { "$ref": "#/$defs/test" },
    29                  "minItems": 1
    30              },
    31              "specification":{
    32                  "description": "A reference to a specification document which defines the behavior tested by this test case. Typically this should be a JSON Schema specification document, though in cases where the JSON Schema specification points to another RFC it should contain *both* the portion of the JSON Schema specification which indicates what RFC (and section) to follow as *well* as information on where in that specification the behavior is specified.",
    33  
    34                  "type": "array",
    35                  "minItems": 1,
    36                  "uniqueItems": true,
    37                  "items":{
    38                      "properties": {
    39                          "core": { 
    40                              "description": "A section in official JSON Schema core drafts",
    41                              "url": "https://json-schema.org/specification-links",
    42                              "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", 
    43                              "type":"string"
    44                          },
    45                          "validation": {
    46                              "description": "A section in official JSON Schema validation drafts",
    47                              "url": "https://json-schema.org/specification-links",
    48                              "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", 
    49                              "type":"string" 
    50                          },
    51                          "ecma262": { 
    52                              "description": "A section in official ECMA 262 specification for defining regular expressions",
    53                              "url": "https://262.ecma-international.org/",
    54                              "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", 
    55                              "type":"string" 
    56                          },
    57                          "perl5": { 
    58                              "description": "A section name in Perl documentation for defining regular expressions",
    59                              "url": "https://perldoc.perl.org/perlre",
    60                              "type":"string" 
    61                          },
    62                          "quote": { 
    63                              "description": "Quote describing the test case",
    64                              "type":"string" 
    65                          }
    66                      },
    67                      "patternProperties": {
    68                          "^rfc\\d+$": { 
    69                              "description": "A section in official RFC for the given rfc number",
    70                              "url": "https://www.rfc-editor.org/",
    71                              "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", 
    72                              "type":"string" 
    73                          },
    74                          "^iso\\d+$": { 
    75                              "description": "A section in official ISO for the given iso number",
    76                              "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", 
    77                              "type": "string" 
    78                          }
    79                      },
    80                      "additionalProperties": { "type": "string" },
    81                      "minProperties": 1,
    82                      "propertyNames": {
    83                          "oneOf": [
    84                              {
    85                                  "pattern": "^((iso)|(rfc))[0-9]+$"
    86                              },
    87                              {
    88                                  "enum": [ "core", "validation", "ecma262", "perl5", "quote" ]
    89                              }
    90                          ]
    91                      }
    92                  }
    93              }
    94          },
    95          "additionalProperties": false
    96      },
    97  
    98      "$defs": {
    99          "test": {
   100              "description": "A single test",
   101  
   102              "type": "object",
   103              "required": [ "description", "data", "valid" ],
   104              "properties": {
   105                  "description": {
   106                      "description": "The test description, briefly explaining which behavior it exercises",
   107                      "type": "string"
   108                  },
   109                  "comment": {
   110                      "description": "Any additional comments about the test",
   111                      "type": "string"
   112                  },
   113                  "data": {
   114                      "description": "The instance which should be validated against the schema in \"schema\"."
   115                  },
   116                  "valid": {
   117                      "description": "Whether the validation process of this instance should consider the instance valid or not",
   118                      "type": "boolean"
   119                  }
   120              },
   121              "additionalProperties": false
   122          }
   123      }
   124  }