Как я могу отключить проверку.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>
Другие вопросы по тегам