allOf和属性关键字是否可以互换?

时间:2015-06-07 16:00:44

标签: json jsonschema

我需要表示各种数据,并且基本上将多个json模式合并为一个。据我了解,这可以通过两种方式实现:

  • 使用allOf
  • 使用属性

它们之间有什么区别吗?如果我写入allOf->中附加的新模式,那么我写的属性是无效的。财产,反之亦然?

1 个答案:

答案 0 :(得分:0)

他们非常不同。非正式意义:

  • property:如果您拥有此属性,则必须满足以下架构。
  • allOf:该对象必须满足allOf数组中包含的所有模式。

关于你的上一个问题,如果你在属性和allOf键中的模式中做出完全相同的约束,你将具有相同的语义。

但是在allOf子句中,您可能拥有更丰富的约束集,这些约束不仅会影响属性,还会影响对象本身(maxProperties,additionalProperties,patternProperties等)。它还可以用于组织复杂的模式或拆分域。