我有一个 YAML 架构,分为两个文件。像这样:
main.yaml
type: object
properties:
a:
description: variable a
type: string
b:
description: variable b
$ref: support.yaml
和 support.yaml
type: object
properties:
c:
description: variable c
type: string
d:
description: variable d
type: string
我有以下情况:当 support.yaml 中的变量
a
存在时,需要 main.yaml 中的变量 d
。我知道 dependencies
中有关键字 jsonschema
但我不太熟悉在模式中引用事物的语法或者是否可能。
您知道这是否可行或有任何可以提供帮助的文档吗?
根据您使用的版本,您可以执行以下操作:
使用草稿-07
allOf
来包装您的条件语句,这使您可以灵活地在将来添加更多条件语句b
和 d
均存在并已定义a
src:https://tour.json-schema.org/content/05-Conditional-Validation/04-if-then-else
# main.yaml
$schema: http://json-schema.org/draft-07/schema#
$id: https://example.org/schema/main.yaml
type: object
properties:
a:
description: variable a
type: string
b:
description: variable b
$ref: 'support.yaml#'
allOf:
- if:
required:
- b
properties:
b:
properties:
d: true
then:
required:
- a
# support.yaml
$schema: 'http://json-schema.org/draft-07/schema#'
$id: 'https://example.org/schema/support.yaml'
type: object
properties:
c:
description: variable c
type: string
d:
description: variable d
type: string