首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jsonix中包含外部生成的包类型?

如何在jsonix中包含外部生成的包类型?
EN

Stack Overflow用户
提问于 2017-01-11 14:00:17
回答 1查看 139关注 0票数 1

我已经从jaxb2生成中排除了一些xml类型,因为相应的类已经存在于Java中。一代是完美的工作,阶级是建立的。

当我试图通过本教程包含类型时,jsonix只搜索包中生成的jaxb2类。因此,它看起来是generated.entity.Position类而不是entity.Position类。

代码语言:javascript
复制
...

    <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>
...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-12 07:33:28

Jsonix的作者。

包含/排除配置并不像您可能认为的那样。它只过滤希望包含在映射中的类型或元素。这允许您只使用所需的内容创建较小的映射。

不过,每个名称空间/包都会生成映射。您不能将不同包的类型放到一个映射中。但是,您可以创建一个包含多个包的模块。配置类似于:

代码语言:javascript
复制
    <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模式执行此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41592900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档