Esquema JSON sobre el uso de $ ref
Entiendo que $ ref lleva un URI a un esquema json para usar, pero ¿a dónde apunta $ ref: "#"? ¿Significa simplemente usar el esquema actual para este nivel de bloque? ¿O significa usar el esquema de nivel raíz definido en el ID de nivel raíz? Gracias
EDITAR: Así que si tengo:
"items": {
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/schemaArray" }
],
"default": {}
}
Debido a que carece de un campo de identificación, intentará validar los elementos de la instancia con el esquema raíz primero y luego, si eso falla, intente validarlo con el esquema schemaArray definido en el esquema de definiciones, ¿verdad?
Así que si lo cambio a:
"items": {
"id" : "#/items",
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/schemaArray" }
],
"default": {}
}
¿Entonces el primer subesquema en cualquier matriz apuntará al esquema de los elementos?
EDITAR # 2: Está bien, así que si tuviera:
"items": {
"id" : "itemSchema",
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/schemaArray" }
],
"default": {}
}
y
"stringArray": {
"type": "array",
"items": { "$ref" : "itemSchema" },
"minItems": 1,
"uniqueItems": true
}
¿El campo "elementos" de "stringArray" se validaría con el "itemSchema" anterior?
¿También funciona el segundo $ ref en 'anyOf' yendo a la raíz y luego recorriendo el camino hasta que llegue a ese esquema? ¡Gracias!