У нас есть следующая проблема. Мы пытаемся сгенерировать Java-код из XSD-файлов, содержащих декларации групп и несколько ссылок на группы для этих групповых объявлений. Вот упрощенная версия:Как влиять на формирование классов деклараций групп с помощью XJC
<xs:group name="Information">
<xs:sequence>
<xs:element name="Name">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="updated" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:group ref="Information" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:group ref="Information"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Основные моменты:
- Каждый из этих элементов определяется в отдельном файле
- Та же группа
Information
это ссылки дважды - Там нет отдельного тип для группы
- Также нет отдельного типа для элемента
Name
внутри группы - Мы не можем изменить файл XSD
Проблема мы сталкиваемся в настоящее время является то, что XJC генерирует недетерминированно в зависимости от машины, на которой мы строим, иногда типа Address.Name
и иногда типа Customer.Name
, потому что Name
элемента является сложным типом и требует типа.
Есть ли способ сказать xjc всегда генерировать один и тот же тип?
Спасибо, что сделал! Использование localScoping = "toplevel" сразу же решило проблему. Однако у других типов были конфликты, которые я тогда мог решить, используя привязки классов. –