additionalProperties中是否需要添加dependentSchemas 属性
Should dependentSchemas property need to be added in additionalProperties
我正在尝试编写一个模式,如果 属性 A 存在,那么 属性 B 或 C 也应该使用 dependencyschema 构造,在我的模式中,我已关闭任何其他属性。
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "PropertiesSchema.json",
"type": "object",
"properties": {
"A": { "type": "boolean" }
},
"additionalProperties": false,
"dependentSchemas": {
"A": {
"anyOf": [
{ "required": [ "B" ] },
{ "required": [ "C" ] }
],
"properties": {
"B": { "type": "boolean" },
"C": { "type": "boolean" }
}
}
}
}
但由于 additionalProperties 结构
,目前以下输入失败
{“A”:正确,“B”:错误}或{“A”:正确,“C”:错误}
那么是否有可能在关闭 additionalProperties 时允许 dependentSchemas 属性?
因此有效输入应该是
{“A”:正确,“B”:错误}或{“A”:正确,“C”:错误}
但对于任何其他 属性 说 D,它应该失败-
{ “A”:正确,“D”:错误 }
additionalProperties
只能考虑同一架构对象级别的 properties
(和 patternProperties
)。
如果将其更改为 unevaluatedProperties
,您会发现它有效。
unevaluatedProperties
可以“看穿”涂抹关键词,比如dependentSchemas
。必须等待其他关键字先解析,最后解析。
我正在尝试编写一个模式,如果 属性 A 存在,那么 属性 B 或 C 也应该使用 dependencyschema 构造,在我的模式中,我已关闭任何其他属性。
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "PropertiesSchema.json",
"type": "object",
"properties": {
"A": { "type": "boolean" }
},
"additionalProperties": false,
"dependentSchemas": {
"A": {
"anyOf": [
{ "required": [ "B" ] },
{ "required": [ "C" ] }
],
"properties": {
"B": { "type": "boolean" },
"C": { "type": "boolean" }
}
}
}
}
但由于 additionalProperties 结构
,目前以下输入失败{“A”:正确,“B”:错误}或{“A”:正确,“C”:错误}
那么是否有可能在关闭 additionalProperties 时允许 dependentSchemas 属性?
因此有效输入应该是
{“A”:正确,“B”:错误}或{“A”:正确,“C”:错误}
但对于任何其他 属性 说 D,它应该失败-
{ “A”:正确,“D”:错误 }
additionalProperties
只能考虑同一架构对象级别的 properties
(和 patternProperties
)。
如果将其更改为 unevaluatedProperties
,您会发现它有效。
unevaluatedProperties
可以“看穿”涂抹关键词,比如dependentSchemas
。必须等待其他关键字先解析,最后解析。