考虑这个例子:
"allOf": [
{"$ref": "test-address-prefix-types-base.json#"},
{
"properties": {}, "additionalProperties" : false
}
]}
当我用Java schema validator验证时,我得到的错误是:
"keyword":"additionalProperties","message":"object instance has properties which are not allowed by the schema: [\"attributes\",\"type\"]"}]
但是,根据基本模式(测试地址前缀类型base)验证的同一个JSON对象没有错误地通过。
引用的架构(基本架构)未设置additionalProperties。
这是我正在使用的json消息:
String message = "{\"data\":{\"attributes\":{" +
"\"notation\": \"A\"," +
"\"prefixType\": \"A\"}" +
",\"type\":\"test-address-prefix-types\"}}";
我在模式中遗漏了什么吗?谢谢
您的架构可以通过以下方式展开:
allof
:它必须根据两个模式独立地验证:
ref
链接的任意属性李> “additionalProperties”:false
,除了在空集“properties”:{}
中定义的属性之外。换句话说,它不能有任何属性李>该问题可在本标准草案5中解决。关于这一点,请参见下面的问题。