Вопрос:
Как я могу заставить xjc / Jaxb генерировать пропускающие javaclasses для нескольких схем, содержащих повторяющиеся определения элементов в одном и том же пространстве имен?
Информация:
У меня есть три схемы .xsd: A, B и C. Все они имеют одинаковое целевое пространство имен.
Это все три шамы, которые мне были даны, и я никоим образом не могу их менять.
У них A есть некоторые элементы, которые также есть в B или C (но у A также есть много самопровозглашенных элементов)
Пример: это один и тот же «код» для A и C:
<xs:simpleType name="y_ym_ymdDatoType">
<xs:union memberTypes="arcgYearType arcgYearMonthType arcDateType"/>
</xs:simpleType>
<xs:simpleType name="arcgYearType">
<xs:restriction base="xs:gYear">
<xs:minInclusive value="1700"/>
<xs:maxInclusive value="2100"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="arcgYearMonthType">
<xs:restriction base="xs:gYearMonth">
<xs:minInclusive value="1700-01"/>
<xs:maxInclusive value="2100-12"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="arcDateType">
<xs:restriction base="xs:date">
<xs:minInclusive value="1700-01-01"/>
<xs:maxInclusive value="2100-12-31"/>
</xs:restriction>
</xs:simpleType>
При использовании xjc для компиляции их в javaclasses я получаю следующее исключение:
[ERROR] 'y_ym_ymdDatoType' is already defined
line 297 of file:../c.xsd
[ERROR] (related to above error) the first definition appears here
line 309 of file:../a.xsd
и то же самое происходит с другими элементами: arcgYearType, arcgYearMonthType и arcDateType.
Я читал о файле привязки, который может решить эту проблему, но я не уверен, как это сделать, поэтому примеры будут крайне предпочтительными.