如何使用一些现有的Java类使用XJC生成JAXB类?

时间:2013-05-29 18:26:37

标签: java jaxb xjc

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

3 个答案:

答案 0 :(得分:2)

您可以使用外部绑定文件将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

答案 1 :(得分:0)

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

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

但是,如果您可以更具体地解决您的问题,例如您在自动生成的课程中不喜欢的内容,例如班级名称或包名称或其他任何有助于回答此问题的内容。

答案 2 :(得分:-1)

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