Ответ 1
Это общее требование. Вы можете сделать это, предоставив дополнительный файл привязки JAXB, чтобы настроить, как JAXB переводит имена типа схемы в имена классов Java.
Эти файлы обычно заканчиваются расширением ".xjb". Вам нужно создать его для вашей схемы, например:
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc">
<jxb:bindings schemaLocation="nl.company.service.xsd" node="/xs:schema">
<jxb:schemaBindings>
<jxb:nameXmlTransform>
<jxb:typeName prefix="XML"/>
<jxb:anonymousTypeName prefix="XML"/>
</jxb:nameXmlTransform>
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>
После того, как вы это сделали, отпустите файл xjb где-нибудь в своем каталоге сборки и скажите Maven использовать его во время перевода:
<includeBindings>
<includeBinding>mybindings.xjb</includeBinding>
</includeBindings>
И вот подсказка для дороги: если вы находитесь в пути, который содержит пробелы (например, "Документы и настройки\пользователь\проект" ), то JAXB будет падать со странными ошибками.