JAXB: предотвратите восстановление классов - PullRequest
6 голосов
/ 27 июля 2011

У меня проблемы с удержанием классов от перерождения. Я

У меня есть схема A, которая импортируется в схему B. Затем схема B импортируется в схему C.

В схеме A у меня есть два простых типа, которые являются перечислениями строк:

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

Тезисы создают сгенерированные классы. В схеме C классы, соответствующие этим перечислениям, продолжают обновляться и, конечно, в неправильном месте. Я добавляю ссылки на существующие классы следующим образом: ( jaxb-creation-modules-for-reuse )

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

У меня есть другие типы (complexTypes и не перечисление simpleTypes), для которых все в порядке.

Спасибо за вашу помощь.

1 Ответ

3 голосов
/ 27 июля 2011

Вы можете использовать файлы эпизодов для составления модульной схемы:

...