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!