Esquema JSON relativo ao uso de $ ref

Eu entendo que $ ref leva um URI para um esquema json para usar, mas onde $ ref: "#" aponta? Significa apenas usar o esquema atual para este nível de bloco? Ou significa usar o esquema de nível raiz definido no id do nível de raiz? obrigado

EDIT: Então, se eu tiver:

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

Como ele não possui um campo id, ele tentará validar os itens da instância com o esquema raiz primeiro e, em seguida, se isso falhar, tente validá-lo com o esquema schemaArray definido no esquema de definições, certo?

Então, se eu mudar isso para:

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

Então o primeiro subschema no array anyOf apontará para o próprio esquema de itens?

EDIT # 2: Ok, então se eu tivesse:

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

e

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

O campo "items" de "stringArray" seria validado em relação ao "itemsSchema" acima?

Também o segundo $ ref em 'anyOf' trabalha indo para a raiz e percorrendo o caminho até atingir esse esquema? Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion