2015-06-07 3 views
1

Мне нужно представить различные данные и в основном объединить несколько схем json в один. Насколько я понимаю, это может быть достигнуто двумя способами:Являются ли allOf и ключевые слова для недвижимости взаимозаменяемыми?

  • использованием allOf
  • используя свойства

Есть ли разница между ними? Может ли что-то, что я напишу как свойство, будет недопустимым, если я напишу в новой схеме, добавленной в свойство allOf-> и наоборот?

ответ

0

Они довольно разные. Неофициальное значение:

  • property: Если у вас есть это свойство, оно должно удовлетворять следующей схеме.
  • allOf: объект должен удовлетворять всем схемам, включенным в массив allOf.

Относительно вашего последнего вопроса, если вы выполняете точно такие же ограничения в свойстве и в схеме внутри ключа allOf, у вас будет такая же семантика.

Но в предложении allOf у вас может быть более богатый набор ограничений, которые влияют не только на свойство, но и на сам объект (maxProperties, дополнительные свойства, patternProperties и т. Д.). Он также может использоваться для организации сложных схем или разделенных доменов.

Смежные вопросы