如何指定Jaxb插件只从wsdl生成一个模式

时间:2013-07-08 07:58:11

标签: jaxb wsdl jaxb2 wsdl2java

我使用maven-jaxb2-pluginwsdl文件生成类。我的wsdl fila有多个架构条目,但我只需要一个。那么是否可以指定我想要生成哪个舍德。也许在pom.xml或xjb绑定文件?我的pop.xml maven-jaxb2-plugin配置:

<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.8.0</version>
    <executions>
        <execution>
           <id>some_id</id>
           <goals>
               <goal>generate</goal>
           </goals>
           <configuration>
               <schemaLanguage>WSDL</schemaLanguage>
               <schemaDirectory>${basedir}/src/main/resources/wsdl/</schemaDirectory>
               <schemaIncludes>
                   <include>*.wsdl</include>
               </schemaIncludes>
               <bindingIncludes>
                   <include>binding.xjb</include> // is 
               </bindingIncludes>
               <generatePackage>my.custom.package</generatePackage> -->
               <generateDirectory>target/generated-sources/jaxb</generateDirectory>
           </configuration>
     </execution>

我的wsdl文件看起来像这样:

<?xml version="1.0" encoding="utf-8"?>    
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" ... other namespaces>    
  <types>    
    <xs:schema targetNamespace="http://www.custom.se/webservices/" elementFormDefault="qualified" attributeFormDefault="unqualified"     xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="Elem">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SeqNo" type="xs:string"/>
            <xs:element name="Method" type="xs:string"/>
            <xs:element name="Id" type="xs:string"/>
            <xs:element name="UserId" type="xs:string"/>
            <xs:element name="ResultCode" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>

    <xs:schema targetNamespace="http://www.custom.se/webservices/publishing/">
    ....
    </xs:shema>

    <xs:schema targetNamespace="http://www.custom.se/webservices/smth/">
    ....
    </xs:shema>

    ....

我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你最终想要达到什么目的?由于您使用的是jaxb插件而不是jaxws插件,我假设您对从WSDL构造生成的Java代码不感兴趣。那么目标是最小化生成的jar中生成的类的数量?

嗯,在这种情况下,最简单的解决方案是生成所有,然后有选择地编译(或打包)。