【问题标题】:How to generate JAXB classes using XJC using some existing Java classes?如何使用一些现有的 Java 类使用 XJC 生成 JAXB 类?
【发布时间】:2013-05-29 18:26:37
【问题描述】:

场景是我有一堆 .xsd 格式的模式,我可以使用 XJC 生成它们。但是,我不喜欢使用这种方法生成的类之一,因此,我想手动为该特定类创建一个替代品。该类被架构中的其他类引用。有没有办法做到这一点?

【问题讨论】:

标签: java jaxb xjc


【解决方案1】:

您可以使用外部绑定文件来配置 XJC 以执行您想要的操作。在下面的示例中,现有类 com.example.Foo 将用于名为 Foo 的复杂类型。

binding.xml

<jxb:bindings schemaLocation="yourSchema.xsd">
    <jxb:bindings node="//xs:complexType[@name='Foo']">
        <jxb:class ref="com.example.Foo"/>
    </jxb:bindings>
</jxb:bindings>

XJC 通话

xjc -d outputDir -b binding.xml yourSchema.xsd

【讨论】:

    【解决方案2】:

    您可以在您的类中手动创建必须使用 javax.xml.bind.annotation 包中的 jaxb 注释的类。

    下面是相同细节的链接。 http://docs.oracle.com/javaee/5/api/javax/xml/bind/annotation/package-summary.html

    但是,如果您可以更具体地解决您的问题,例如您在自动生成的类中不喜欢什么,例如类名或包名或其他任何对回答这个问题有很大帮助的东西。

    【讨论】:

      【解决方案3】:

      只要您使用相同的值注释字段/属性,就可以手动更改您的类并更改任何引用(包括 ObjectFactory 类)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-25
        • 2013-01-04
        • 1970-01-01
        • 2014-09-11
        相关资源
        最近更新 更多