{
  "meta:license": [
    "Copyright 2017 Adobe Systems Incorporated. All rights reserved.",
    "This file is licensed to you under the Apache License, Version 2.0 (the 'License');",
    "you may not use this file except in compliance with the License. You may obtain a copy",
    "of the License at http://www.apache.org/licenses/LICENSE-2.0"
  ],
  "$schema": "http://json-schema.org/draft-06/schema#",
  "$id": "https://example.com/schemas/complex",
  "title": "Complex References ",
  "type": "object",
  "description": "This is an example schema that uses types defined in other schemas.",
  "properties": {
    "refabstract": {
      "$ref": "https://example.com/schemas/abstract#/definitions/first"
    },
    "refnamed": {
      "$ref": "https://example.com/schemas/simple"
    },
    "reflist": {
      "type": "array",
      "items": {
        "$ref": "https://example.com/schemas/simple"
      }
    },
    "refobj": {
      "type": "object",
      "properties": {
        "foo": {
          "$ref": "https://example.com/schemas/simple"
        }
      }
    },
    "refnestedobj": {
      "type": "object",
      "properties": {
        "refobj": {
          "type": "object",
          "properties": {
            "foo": {
              "$ref": "https://example.com/schemas/simple"
            }
          }
        }
      }
    },
    "or": {
      "description": "String or number…",
      "anyOf": [
        { "type":"string" },
        { "type":"number", "minimum": 0}
      ]
    },
    "and": {
      "description": "Number in a range",
      "allOf": [
        { "type":"number", "maximum": 10 },
        { "type":"number", "minimum": 0}
      ]
    },
    "xor": {
      "description": "Exclusive choice.",
      "oneOf": [
        { "type":"number", "maximum": 0 },
        { "type":"number", "minimum": 10}
      ]
    }
  },
  "required": [
    "refabstract"
  ],
  "additionalProperties": true,
  "patternProperties": {
    "int.*": {
      "type": "integer"
    },
    "str.*": {
      "type":"string"
    }
  }
}