У меня есть большой сторонний xsd-файл, который втягивает целую кучу других xsd-файлов посредством импорта. Все это генерирует более 1000 классов.Когда я говорю процессору xjc (jaxb) сгенерировать все в определенном пакете, я получаю всевозможные конфликты имен. Если я не укажу пакет, то процессор создаст пакеты java, используя целевые атрибуты в файлах xsd, и все это будет сгенерировано без каких-либо ошибок.
Проблема в том, что структура пакета ужасна, потому что целевые имена выбраны очень плохо. Другие разработчики это ненавидят. Им нужно всего несколько занятий.
Итак, я пытался предоставить процессору файл bindings.xml, в котором я хочу указать определенные классы, которые будут сгенерированы в заданном имени пакета. Я перебирал документацию на сайте Oracle, форумы, образцы. Я не могу процитировать каждую итерацию моего файла привязок. Мое текущее воплощение таково:
<jaxb:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
version="2.1"
schemaLocation="heavy.xsd"
node="//xsd:element[@name='Error']"
>
<jaxb:bindings node="//xsd:element[@name='Error']">
<jaxb:package name="ABC"/>
</jaxb:bindings>
<jaxb:globalBindings
underscoreBinding="asCharInWord"
localScoping="toplevel"
typesafeEnumMaxMembers="10000"
generateElementClass="true"
>
</jaxb:globalBindings>
<!--
<jaxb:package name="ABC"/>
-->
<!--
<jaxb:schemaBindings>
<jaxb:package name="ABC"/>
</jaxb:schemaBindings>
-->
<!--
<jaxb:schemaBindings>
<jaxb:package name="ABC"/>
<jaxb:nameXmlTransform>
<jaxb:elementName prefix="Error"/>
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
-->
</jaxb:bindings>
Что бы я ни пытался, я еще не видел, чтобы он генерировал какие-либо классы в пакете ABC. В этом случае я хочу, чтобы ошибка генерировалась в ABC. Любая помощь будет принята с благодарностью.