use*_*879 18 java inheritance binding json jsonschema
我已经使用带有继承的java绑定搜索了json模式,所有搜索都让我使用了"allOf".
使用allOf可能会解决我的问题,但我想知道在json架构中是否有一个我可以使用的构造,它将使用真正的java继承"B extends A"生成我的java代码 - 而不是从B内部的A内联所有属性?
我想知道这是否支持/可行,或者我只是在做梦.如果不支持,我很想知道原因.
fge*_*fge 22
好吧,我是两者的作者:
所以我可以回答你的问题,基本答案是否定的.
为什么?因为当前没有定义架构继承这样的东西.
使用时allOf,您需要allOf匹配所有模式; 如果你对这个或那个JSON中可能存在的内容很严格,那么你将添加additionalProperties到false.因此,你不能继承.
真正的解决方案是我为草案v5提出的机制:$merge和$patch关键字.这些将允许使用RFC 7386或RFC 6902(请参阅此处获取更多信息)修补模式,并确实实现模式继承.
简而言之:
additionalProperties为false,并且您的基本JSON是一个对象,您将无法定义其他对象成员;