我已经使用具有继承性的Java绑定搜索了json模式,并且所有搜索都导致我使用“ allOf”。
使用allOf可能会解决我的问题,但我想知道json模式中是否有可以使用的构造,该构造将生成具有真实Java继承“ B扩展A”的Java代码- 而不是在B内插入A的所有属性?
我想知道这是否被支持/可行,或者我只是在做梦。如果不支持,我很想知道原因。
好吧,我是两者的作者:
因此,我可以回答您的问题,而基本答案是“否”。
为什么?因为当前没有定义架构继承这样的东西。
使用时allOf,您需要所有模式都allOf匹配;并且如果您对此JSON中存在的内容严格要求,则将添加additionalProperties到中false。因此,您无法继承。
allOf
additionalProperties
false
真正的解决方案是我针对v5草案提出的一种机制:$mergeand $patch关键字。这些将允许使用RFC 7386或RFC 6902修补架构(请参阅此处以获取更多信息),并确实实现架构继承。
$merge
$patch
简而言之: