【发布时间】:2015-04-24 07:23:50
【问题描述】:
我正在为其中一个开源项目学习 JSON Schema。有一个关于将已定义的架构与一些其他关键字组合的问题。
假设我已经定义了一些可通过参考获得的架构,例如#/definitions/positiveInteger。
现在我想引用该类型并使用一些其他关键字对其进行扩展。例如,我想添加enum 或description。
是否允许这样做:
{
"$ref" : "#/definitions/positiveInteger",
"description" : "This is positive integer with enums",
"enum" : [ 2, 4, 6, 8 ]
}
或者我必须这样做:
{
"allOf" : [ { "$ref" : "#/definitions/positiveInteger" } ],
"description" : "This is positive integer with enums",
"enum" : [ 2, 4, 6, 8 ]
}
我找不到正式的参考资料,也不确定验证工具会如何反应。
基本上我有两个问题:
- 像
enum这样的验证关键字应该在第一种情况下工作吗? - 如果我像第一种情况一样在
$ref旁边包含像description这样的元数据关键字,会不会有任何冲突?
我实际上更喜欢内联$refs,而不是将它们包含在allOf 和种类中,但不确定这是否合法。我什至在规范中找不到$ref 的描述(仅举几个例子)。
【问题讨论】:
标签: json jsonschema