我已经从jaxb2生成中排除了一些xml类型,因为相应的类已经存在于Java中。一代是完美的工作,阶级是建立的。
当我试图通过本教程包含类型时,jsonix只搜索包中生成的jaxb2类。因此,它看起来是generated.entity.Position类而不是entity.Position类。
...
<jaxb:bindings node="//xs:complexType[@name='PositionType']">
<jaxb:class ref="entity.Position"/>
</jaxb:bindings>
<jaxb:bindings node="//xs:complexType[@name='MoveType']">
<jaxb:class ref="entity.Move"/>
</jaxb:bindings>
<jsonix:mapping package="entity">
<jsonix:includes>
<jsonix:type name="Position"/>
</jsonix:includes>
</jsonix:mapping>
...发布于 2017-01-12 07:33:28
Jsonix的作者。
包含/排除配置并不像您可能认为的那样。它只过滤希望包含在映射中的类型或元素。这允许您只使用所需的内容创建较小的映射。
不过,每个名称空间/包都会生成映射。您不能将不同包的类型放到一个映射中。但是,您可以创建一个包含多个包的模块。配置类似于:
<jsonix:module name="CSW_2_0_2">
<jsonix:mapping package="net.opengis.csw.v_2_0_2" name="CSW_2_0_2"/>
<jsonix:mapping package="org.hisrc.dc.elements.v_1_1" name="DC_1_1"/>
<jsonix:mapping package="org.hisrc.dc.terms" name="DCT"/>
</jsonix:module>接下来,您将使用jaxb:class/@ref。这对Jsonix不好,因为您这样说“我不关心XML模型,只需使用这个Java类”。因此,模式编译器(我指的是底层JAXB模式编译器XJC)不生成适当的模型。简而言之,不会将Java类编译成XML<->JS映射。它只对XML模式执行此操作。
https://stackoverflow.com/questions/41592900
复制相似问题