2015-05-14 62 views
2

我有不同的服务模式文件(超过5个),我想从中使用xmlbeans生成一个jar文件。Maven-xmlbeans:使用多个模式文件生成单个jar文件

我使用XMLBean的插件如下

<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>xmlbeans-maven-plugin</artifactId> 
     <version>${xmlbeans.version}</version> 
     <executions> 
      <execution> 
       <goals> 
        <goal>xmlbeans</goal> 
       </goals> 
       <phase>compile</phase> 
      </execution> 
     </executions> 
     <inherited>true</inherited> 
     <configuration> 
      <download>true</download> 
      <javaSource>${java.version}</javaSource> 
      <schemaDirectory>src/main/xsd</schemaDirectory> 
      <xmlConfigs> 
       <xmlConfig implementation="java.io.File">src/main/xsdconfig/xsdconfig.xml</xmlConfig> 
      </xmlConfigs> 
     </configuration> 
    </plugin> 
</plugins> 

我希望有不同的服务模式不同的软件包名称。如何指定以及如何提供模式路径和xsdConfig文件以应用软件包详细信息。

请指教。

回答

2

您需要定义一个以.xsdconfig(例如myConfig.xsdconfig)结尾的文件,以将每个架构文件中的目标名称空间映射到Java包名称。将此.xsdconfig文件放入相同的目录中,作为您正在编译的相应.xsd文件。假设,例如,你有以下.xsd文件:

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     targetNamespace="http://your.company.org/dileep"> 
    ... 
</xs:schema> 

然后您可以按如下定义以下myConfig.xsdconfig文件:

<!-- you must use the http://www.bea.com/2002/09/xbean/config namespace here --> 
<xb:config xmlns:xb="http://www.bea.com/2002/09/xbean/config"> 
    <xb:namespace uri="http://your.company.org/dileep"> <!-- map this namespace --> 
     <xb:package>org.company.your.dileep</xb:package> <!-- to this Java package --> 
    </xb:namespace> 
    <!-- more namespace mappings can go here ... --> 
</xb:config> 

也可以控制从每个生成的Java类的名称的模式文件。

您可以在official XMLBeans documentation中阅读更多关于此的内容。

+0

我想维护我的架构在不同的文件夹中并应用不同的xsdConfig文件。我该怎么做 ? – Dileep

+0

请问这是一个关于堆栈溢出的新问题。为每组模式创建单独的文件夹,并为每个文件夹分配自己的'xsdconfig'文件。 –

+0

创建一个新的问题。你可以在这里找到它http://stackoverflow.com/questions/30593974/xmlbeans-i-wanted-to-maintain-my-schemas-in-different-folders-and-apply-differ – Dileep

相关问题