Как я могу отключить проверку.xsd в cxf-xjc-plugin?
Я пытаюсь сгенерировать исходные файлы Java из файлов XSD из файлов поставщика (я не могу изменить эти файлы) с помощью плагина maven cxf-xjc-plugin.
Everyhing работал нормально, но мне нужно добавить новый файл.xsd. Этот файл включает в себя другие файлы.xsd, и существует конфликт, потому что новые файлы.xsd определяют сущности с тем же именем, что и существующие файлы xsd (я знаю, я знаю, но я всего лишь пользователь этих файлов.xsd). Ах! они должны быть в одной упаковке...
Ошибка типичная:
Схема не может содержать два глобальных компонента с одинаковыми именами; эта схема содержит два вхождения...
Я читал, что кто-то смог исправить подобные проблемы, сообщая инструменту, который он использовал, чтобы НЕ проверять.xsd.
Мне было интересно, если можно сказать плагину cxf-xjc-no, чтобы проверить.xsd файлы и просто конвертировать в Java
Конфигурация maven выглядит следующим образом:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-xjc-plugin</artifactId>
<version>3.0.5</version>
<configuration>
<extensions>
<extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.3.0</extension>
</extensions>
</configuration>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<forceRegenerate>false</forceRegenerate>
<sourceRoot>${project.basedir}/src/main/java</sourceRoot>
<xsdOptions>
<xsdOption>
<xsd>${basedir}/src/main/resources/webapi/xsd/SuperSchemaCommon.xsd</xsd>
<packagename>com.XX.XXXXX.package</packagename>
<extensionArgs>
<arg>-encoding</arg>
<arg>UTF-8</arg>
</extensionArgs>
</xsdOption>
<xsdOption>
<xsd>${basedir}/src/main/resources/webapi/xsd/SuperSchemaInput.xsd</xsd>
<bindingFile>${basedir}/src/main/xjb/pnr/SuperSchemaInput.xjb</bindingFile>
<packagename>com.XXXXXXX.input</packagename>
<extensionArgs>
<arg>-encoding</arg>
<arg>UTF-8</arg>
</extensionArgs>
</xsdOption>
</xsdOptions>
</configuration>
<goals>
<goal>xsdtojava</goal>
</goals>
</execution>
</executions>
</plugin>
Заранее спасибо!
1 ответ
Решение найдено!
Просто добавив параметр xjc "-nv" в качестве другого расширения arg. Передается в аргументы xjc при выполнении задачи maven.
<xsdOption>
...
<extensionArgs>
<arg>-encoding</arg>
<arg>UTF-8</arg>
<arg>-nv</arg>
</extensionArgs>
</xsdOption>