是否可以让property_A依赖于属于不同json模式的property_B的值?

时间:2016-11-17 00:19:15

标签: json jsonschema json-schema-validator

让Schema_A成为具有属性P_a的给定模式,使得P_a是0.1到10.0之间的数字,增量为0.1。我想知道是否可以选择属性Z s.t.的子集。 Z是使用P_a作为选择器的Schema_B属性的子集。

例如,如果Schema_B的属性是Pb1,Pb2,Pb3,我想将Schema_B限制为仅包含Pb1和Pb2,如果P_a<如果3.0< 3.0,则Schema_B应该仅包含Pb1。 P_a< 3.5,否则Schema_B应包含所有属性(即Pb1,Pb2和Pb3)

Schema_A:

 {
    "$schema": "http://localhost/draft-04/schema#",
    "id": "http://localhost/schemas/schemaA.json",
    "type": "object",
    "title": "Schema_A",
    "properties": {
        "P_a": {"type":"number",
                   "multipleOf": 0.1,
                   "exclusiveMinimum":0,
                   "maximum": 10
                   }
    },
    "required": ["key_A1"] 
}

Schema_B

{
        "$schema": "http://localhost/draft-04/schema#",
        "id": "http://localhost/schemas/schemaB.json",
        "type": "object",
        "title": "Schema_B",
        "properties": {
            "Pb1": {"type":"string", "enum":["X1", "Y1", "Z1"},
            "Pb2": {"type":"string", "enum":["X2", "Y2", "Z2"},
            "Pb3": {"type":"string", "enum":["X3", "Y3", "Z3"}
        }
    }

例如,让P_a = 2.0,然后下面将是Schema_B的有效json实例:

{"Pb1":"X1", "Pb2":"Y2"}

以下是无效实例:

{"Pb1":"X1"}

{"Pb1":"X1", "Pb2":"Y2", "Pb3":"Y3"}

非常感谢任何帮助。

0 个答案:

没有答案