0

我用来maven-jaxb2-pluginwsdl文件生成类。我的wsdlfila 有多个架构条目,但我只需要一个。那么是否可以指定我想要生成的shema。也许在 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>

    ....

我很感激任何帮助。

4

1 回答 1

0

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

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

于 2013-07-08T08:16:21.397 回答