假设我有一个JSON对象,如下所示:
{
"sources": [
{
"id": "foo",
"type": "a"
},
{
"id": "bar",
"type": "b"
}
],
"data": [
{
"source-id": "foo",
"a-attribute": 10
},
{
"source-id": "bar",
"b-attribute": 20
}
]
}
字符串
这里,data
对象中的source-id
必须等于source
对象中的id
s之一。
1.如何在JSON Schema中表达这种关系?
1.如何根据引用的sources
对象的type
属性值为data
对象执行conditional subschema application操作?
在2.上扩展一点,例如,当引用的source
的type
是a
时,我必须指定a-attribute
,而不能指定b-attribute
。
当引用的源的type
是b
时,我应该被迫指定b-attribute
而不是a-attribute
。
这可以通过JSON Schema实现吗?或者我需要编写自定义验证代码吗?
1条答案
按热度按时间dluptydi1#
我在JSON Schema Slack中被告知,JSON Schema今天不能表达关系完整性约束。
因此,我想要做的是不能用模式实现的,而是需要单独的验证。