Schemat JSON dotyczący użycia $ ref
Rozumiem, że $ ref używa URI do użycia schematu json, ale gdzie $ ref: „#” wskazuje? Czy to po prostu oznacza użycie bieżącego schematu dla tego poziomu bloku? Czy może to oznaczać użycie schematu na poziomie głównym zdefiniowanego w identyfikatorze poziomu głównego? Dzięki
EDYCJA: Więc jeśli mam:
"items": {
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/schemaArray" }
],
"default": {}
}
Ponieważ brakuje pola identyfikatora, spróbuje najpierw zweryfikować elementy instancji za pomocą schematu głównego, a następnie, jeśli to się nie powiedzie, spróbuj sprawdzić poprawność za pomocą schematu schemaArray zdefiniowanego w schemacie definicji, prawda?
Więc jeśli zmienię go na:
"items": {
"id" : "#/items",
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/schemaArray" }
],
"default": {}
}
Wtedy pierwszy podschema w tablicy anyOf wskaże sam schemat elementów?
EDYCJA # 2: Dobra, jeślibym miał:
"items": {
"id" : "itemSchema",
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/schemaArray" }
],
"default": {}
}
i
"stringArray": {
"type": "array",
"items": { "$ref" : "itemSchema" },
"minItems": 1,
"uniqueItems": true
}
Pole „items” „stringArray” zostanie sprawdzone na podstawie powyższego „itemSchema”?
Czy drugie $ ref w 'anyOf' działa, przechodząc do katalogu głównego, a następnie przechodząc w dół ścieżki, aż trafi na ten schemat? Dzięki!