考虑这个例子:
"allOf": [
{"$ref": "test-address-prefix-types-base.json#"},
{
"properties": {}, "additionalProperties" : false
}
]}
当我使用Java模式验证器验证时,我收到错误说:
"keyword":"additionalProperties","message":"object instance has properties which are not allowed by the schema: [\"attributes\",\"type\"]"}]
但是针对基本模式验证的相同JSON对象(test-address-prefix-types-base)没有错误地传递。
引用的架构(基础架构)没有设置其他属性。
这是我正在使用的json消息:
String message = "{\"data\":{\"attributes\":{" +
"\"notation\": \"A\"," +
"\"prefixType\": \"A\"}" +
",\"type\":\"test-address-prefix-types\"}}";
我是否错过了架构中的任何内容? 感谢
答案 0 :(得分:3)
您的架构可以通过这种方式扩展:
allof
:它必须针对两个模式验证independently
:
ref
链接的任意属性。"additionalProperties" : false
,除了空集"properties" : {}
中定义的属性。换句话说,它不具备任何财产。 这个问题可以在标准草案5中解决。有关详情,请参阅the following SO question。