Схема JSON относительно использования $ ref

Я понимаю, что $ ref принимает URI для использования в схеме json, но куда указывает $ ref: "#"? Это просто значит использовать текущую схему для этого уровня блока? Или это означает использовать схему корневого уровня, определенную в идентификаторе корневого уровня? Спасибо

РЕДАКТИРОВАТЬ: Итак, если у меня есть:

"items": {
        "anyOf": [
            { "$ref": "#" },
            { "$ref": "#/definitions/schemaArray" }
        ],
        "default": {}
    }

Поскольку в нем отсутствует поле id, он сначала попытается проверить элементы экземпляра с помощью корневой схемы, а затем, если это не удастся, попытаться проверить его с помощью схемы schemaArray, определенной в схеме определений, верно?

Так что, если я изменю это на:

 "items": {
            "id" : "#/items",
            "anyOf": [
                { "$ref": "#" },
                { "$ref": "#/definitions/schemaArray" }
            ],
            "default": {}
        }

Тогда первая подсхема в массиве anyOf будет указывать на саму схему элементов?

РЕДАКТИРОВАТЬ № 2: Хорошо, так что если у меня было:

 "items": {
        "id" : "itemSchema",
        "anyOf": [
            { "$ref": "#" },
            { "$ref": "#/definitions/schemaArray" }
        ],
        "default": {}
    }

а также

"stringArray": {
        "type": "array",
        "items": { "$ref" : "itemSchema" },
        "minItems": 1,
        "uniqueItems": true
    }

Поле "items" stringArray будет проверено на соответствие приведенному выше элементу "itemsSchema"?

Также работает ли второй $ ref в 'anyOf', перейдя в корень и затем пройдя по пути, пока не достигнет этой схемы? Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос