JAXB: Prevent classes from being regenerated
Asked Answered
P

1

7

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.

Polysyllable answered 27/7, 2011 at 8:55 Comment(0)
B
3

You can use episode files to do modular schema compilation:

Buxtehude answered 27/7, 2011 at 11:19 Comment(3)
I'm trying to find a workaround for what I need. I just wanted to precise that the java enumerations are not in the .episode file, and are still regenerated. I noticed that the problem occurs only for these enums..Polysyllable
I know, that this post ist very old, but I can't find a solution to preserve the generation of enums. Have you found something?Exhilarate
My question was answered now - Here is the way, how it schoud work.Exhilarate

© 2022 - 2024 — McMap. All rights reserved.