[英]How to use additionalProperties with allOf in JSON schema?
[英]In JSON Schema how are conflicting 'additionalProperties' to be parsed?
在JSON模式中,如果我们在根级别具有“ additionalProperties”:false,并且具有“ additionalProperties”:true,则嵌套如何解决此假定的“冲突”
例如
{
"id": "someId",
"type": "object",
"additionalProperties": false,
"properties": {
"storage": {
"type": "object",
"additionalProperties": true
"properties": {
"type": { "enum": [ "disk" ] },
"device": {
"type": "string",
"pattern": "^/dev/[^/]+(/[^/]+)*$"
}
},
"required": [ "type", "device" ]
}
}
}
一个会覆盖另一个吗?
它们不会覆盖。 它们的范围仅限于JSON模式级别。
JSON模式是一个约束系统,因此您只能添加约束,而不能删除它们。 如果同时应用"additionalProperties": true
和"additionalProperties": false
,则效果就好像只存在false
(因为它是更严格的约束)。
此外, additionalProperties
仅“知道”同一模式对象内的properties
和patternProperties
。 它不能“看到”子模式(内联或引用)。 因此,您的上述架构将不允许任何属性。
请注意,在草稿08中可能添加了可以“看到”子模式的类似关键字,尽管我们还没有弄清楚它的工作方式。 当前,没有JSON Schema关键字以这种方式运行,因此添加这样的功能是一项复杂的工作。 但这是08草案的主要目标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.