2016-08-19 55 views
0

我試圖從Maven cxf-xjc-插件生成提供者(我無法更改這些文件)XSD文件的Java源文件。如何禁用cxf-xjc-plugin中的.xsd驗證?

Evertyhing工作正常,但我需要添加一個新的.xsd文件。這個文件裏面包含了其他的.xsd文件,因爲新的.xsd文件定義了與現有的xsd文件同名的實體(我知道,我知道,但我只是這些.xsd文件的用戶)。啊!他們應該在同一個包......

的錯誤是典型的:

一個模式不能包含具有相同名稱的兩個全球性組件;此架構包含兩次出現...

我讀過某人能夠解決類似問題,告訴他正在使用的工具來驗證.xsd。

我想知道是否有可能告訴了CXF-XJC-插件沒有驗證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即可。當執行maven任務時,它被傳遞給xjc的參數

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