【发布时间】:2013-07-09 20:13:51
【问题描述】:
我知道 $ref 需要一个 URI 到一个 json 模式来使用,但是 $ref : "#" 指向哪里? 这是否只是意味着在这个块级别使用当前模式?或者这是否意味着使用根级别 id 中定义的根级别架构? 谢谢
编辑: 所以如果我有:
"items": {
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/schemaArray" }
],
"default": {}
}
因为它缺少一个 id 字段,它会首先尝试使用根架构验证实例项,然后如果失败则尝试使用定义架构中定义的 schemaArray 架构来验证它,对吗?
所以如果我把它改成:
"items": {
"id" : "#/items",
"anyOf": [
{ "$ref": "#" },
{ "$ref": "#/definitions/schemaArray" }
],
"default": {}
}
那么 anyOf 数组中的第一个子模式会指向 items 模式本身吗?
编辑#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 是否也可以通过转到根目录然后遍历路径直到它到达该模式来工作? 谢谢!
【问题讨论】:
-
您能否说明这与哪个草稿版本有关?
标签: json jsonschema