我正在使用 jsonschema 来验证条目类型,这些条目类型描述了(给定类型的)条目是如何显示的。这些条目可以有页面并分为多个方面。
页面和方面都可以设置条件,我想重用基本模式,即使方面的条件可以具有页面条件没有的 2 个其他属性。
这是我经常遇到的普遍问题。我想扩展一个模式,同时能够在所有情况下将“additionalProperties”设置为 false。
我也看不到用 anyOf 修复它的可能性,allOf 没有重复。
还是我应该放弃additionalProperties
或接受重复项?
{
"$comment": "page condition",
"type": "object",
"properties": {
"condition": {
"type": "object",
"properties": {
"aspect": {
"type": "string"
},
"value": {
"type": "string"
},
"compare": {
"type": "string"
}
},
"required": [
"aspect",
"value"
],
"additionalProperties": false
}
}
}
...
{
"$comment": "aspect condition",
"type": "object",
"properties": {
"condition": {
"type": "object",
"properties": {
"aspect": {
"type": "string"
},
"value": {
"type": "string"
},
"compare": {
"type": "string"
},
"disabled_text": {
"type": "string"
},
"default_pass": {
"type": "boolean"
}
},
"required": [
"aspect",
"value"
],
"additionalProperties": false
}
}
}