Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JAXB: Prevent classes from being regenerated

Tags:

jaxb

xsd

I'm having troubles keeping classes from being regenerated. I'm

I have a schema A, which is imported in schema B. Schema B is then imported in Schema C.

In schema A, I have two simpleTypes, which are enumerations of strings:

<xs:simpleType name="blah_type">
<xs:restriction base="xs:string">
        <xs:enumeration value="blah_1"/>
        <xs:enumeration value="blah_2"/>
        <xs:enumeration value="blah_3"/>
        <xs:enumeration value="blah_4"/>
        <xs:enumeration value="blah_5"/>
    </xs:restriction>
</xs:simpleType>


<xs:simpleType name="another_blah_type">
    <xs:restriction base="xs:string">
        <xs:enumeration value="another_blah_1"/>
        <xs:enumeration value="another_blah_2"/>
        <xs:enumeration value="another_blah_3"/>
        <xs:enumeration value="another_blah_4"/>
        <xs:enumeration value="another_blah_5"/>
    </xs:restriction>
</xs:simpleType>

Theses produces generated classes. In schema C, the classes corresponding to these enumerations keep being regenerated, and of course in the wrong place. I'm adding references to existing classes this way : (jaxb-creating-modules-for-reuse)

<jaxb:bindings  node="//xs:simpleType[@name='blah_type']">
    <jaxb:class ref="com.stuff.otherstuff.really.deep.BlahType"/>
</jaxb:bindings>

I have other types (complexTypes, and non enumeration simpleTypes) for which everything is fine.

Thanks for your help.

like image 914
ins Avatar asked Jul 27 '11 08:07

ins


1 Answers

You can use episode files to do modular schema compilation:

  • JAXB - Creating modules for reuse
  • http://weblogs.java.net/blog/kohsuke/archive/2006/09/separate_compil.html?force=741
like image 125
bdoughan Avatar answered Nov 03 '22 14:11

bdoughan