我知道 $ref 需要一个 URI 来使用 json 模式,但是 $ref : "#" 指向哪里?这是否只是意味着在这个块级别使用当前模式?或者这是否意味着使用根级别 id 中定义的根级别架构?谢谢
编辑:所以如果我有:
"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
}
“stringArray”的“items”字段将根据上述“itemsSchema”进行验证?
'anyOf' 中的第二个 $ref 是否通过转到根目录然后遍历路径直到它到达该模式来工作?谢谢!