用于引用映射元素的模式



我想为一个yaml文件创建一个json schema,该文件将包含一个定义键列表,稍后将在yaml文档中引用。

例子
myDef:
foo: bar
baz: lipsum
someProperty:
refferencedValue: foo

模式应该只验证myDef中列出的someProperty.refferencedValue的值。所以只有foobaz是有效的someProperty.refferencedValue

在jsonschema中是可能的吗?如果是这样,会是什么样子呢?

在jsonschema中,不可能从数据中引用任意的动态值来将其用作模式验证的一部分。有关更多上下文,请参阅本讨论。然而:

如果可以枚举myDef对象的所有可能的属性(或属性名称模式),您可以使用oneOf对每个属性的someProperty.refferencedValue值应用特定的约束。

如果不能枚举所有不能使用标准json模式的值。一些验证器库实现了可以帮助您的非标准特性。例如,Avj实现了一个$data关键字,可以解决您的问题。但是请记住,此解决方案与Avj绑定-其他验证器将忽略此关键字。

相关内容

  • 没有找到相关文章

最新更新