【问题标题】:How can I disable .xsd validation in cxf-xjc-plugin?如何在 cxf-xjc-plugin 中禁用 .xsd 验证?
【发布时间】:2016-08-19 11:55:58
【问题描述】:

我正在尝试使用 maven cxf-xjc-plugin 从提供程序(我无法更改这些文件)文件中生成 Java 源代码。

Evertyhing 工作正常,但我需要添加一个新的 .xsd 文件。该文件包含其他 .xsd 文件,并且存在冲突,因为新的 .xsd 文件定义了与现有 xsd 文件同名的实体(我知道,我知道,但我只是这些 .xsd 文件的用户)。啊!它们应该在同一个包中...

错误是典型的:

一个模式不能包含两个同名的全局组件;此架构包含两次出现的 ...

我读到有人能够解决类似的问题,告诉他正在使用的工具不验证 .xsd。

我想知道是否可以告诉 cxf-xjc-plugin 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>

提前致谢!

【问题讨论】:

    标签: java xml xsd cxf cxf-xjc-plugin


    【解决方案1】:

    找到解决方案!

    只需添加 xjc 参数“-nv”作为另一个扩展 arg。执行maven任务时传给xjc的参数

    <xsdOption>
    ...
        <extensionArgs>
            <arg>-encoding</arg>
            <arg>UTF-8</arg>
            <arg>-nv</arg>
        </extensionArgs>
    </xsdOption>
    

    【讨论】:

      猜你喜欢
      • 2020-08-20
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多