提问者:小点点

如何使用附加属性与所有的JSON模式?


考虑这个例子:

"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\"}}";

我在模式中遗漏了什么吗?谢谢


共1个答案

匿名用户

您的架构可以通过以下方式展开:

allof:它必须根据两个模式独立地验证

  • 第一个具有通过ref链接的任意属性
  • 第二个不允许任何属性“additionalProperties”:false,除了在空集“properties”:{}中定义的属性之外。换句话说,它不能有任何属性

该问题可在本标准草案5中解决。关于这一点,请参见下面的问题。