<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2016-05-02 
 | Rendered using Apache Maven Fluido Skin 1.4
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20160502" />
    <meta http-equiv="Content-Language" content="en" />
    <title>axis2-wsdl2code-maven-plugin &#x2013; axis2-wsdl2code:wsdl2code</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.4.min.js"></script>

    
                  </head>
        <body class="topBarDisabled">
          
        
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                    <a href="http://www.apache.org/" id="bannerLeft">
                                                                                        <img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Axis2"/>
                </a>
                      </div>
        <div class="pull-right">                                <a href="../../../" id="bannerRight">
                                                                                                <img src="../../../images/axis.jpg" />
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                  <li id="publishDate">Last Published: 2016-05-02
                      <span class="divider">|</span>
                   </li>
                  <li id="projectVersion">Version: 1.7.2
                          <span class="divider">|</span>
                      </li>
                                      <li class="">
                    <a href="http://www.apache.org" class="externalLink" title="Apache">
        Apache</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../../../index.html" title="Axis2/Java">
        Axis2/Java</a>
                    <span class="divider">/</span>
      </li>
                <li class="">
                    <a href="./" title="axis2-wsdl2code-maven-plugin">
        axis2-wsdl2code-maven-plugin</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">axis2-wsdl2code:wsdl2code</li>
                
                
                    
      
                            </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">Overview</li>
                              
      <li>
  
                          <a href="index.html" title="About">
          <span class="none"></span>
        About</a>
            </li>
                
      <li>
  
                          <a href="usage.html" title="Usage">
          <span class="none"></span>
        Usage</a>
            </li>
                                                                      
      <li>
  
                          <a href="plugin-info.html" title="Plugin Documentation">
          <span class="icon-chevron-down"></span>
        Plugin Documentation</a>
                    <ul class="nav nav-list">
                    
      <li class="active">
  
            <a href="#"><span class="none"></span>wsdl2code</a>
          </li>
              </ul>
        </li>
                              <li class="nav-header">Apache</li>
                              
      <li>
  
                          <a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License">
          <span class="none"></span>
        License</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">
          <span class="none"></span>
        Sponsorship</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
          <span class="none"></span>
        Thanks</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/security/" class="externalLink" title="Security">
          <span class="none"></span>
        Security</a>
            </li>
            </ul>
                
                    
                
          <hr />

           <div id="poweredBy">
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                  </div>
          </div>
        </div>
        
                
        <div id="bodyColumn"  class="span10" >
                                  
            
  
    <div class="section">
<h2><a name="axis2-wsdl2code:wsdl2code"></a>axis2-wsdl2code:wsdl2code</h2>
      
<p><b>Full name</b>:</p>
      
<p>org.apache.axis2:axis2-wsdl2code-maven-plugin:1.7.2:wsdl2code</p>
      
<p><b>Description</b>:</p>
      
<div>A Mojo for generating Java sources from a WSDL.</div>
      
<p><b>Attributes</b>:</p>
      
<ul>
        
<li>Requires a Maven 2.0 project to be executed.</li>
        
<li>Requires dependency resolution of artifacts in scope: <tt>test</tt>.</li>
        
<li>Binds by default to the lifecycle phase: <tt>generate-sources</tt>.</li>
      </ul>
      
<div class="section">
<h3><a name="Optional_Parameters"></a>Optional Parameters</h3>
        
<table class="table table-striped" border="0" align="left">
          
<tr class="a">
            
<th>Name</th>
            
<th>Type</th>
            
<th>Since</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td><b><a href="#allPorts">allPorts</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Set this to true to generate code for all ports.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#backwardCompatible">backwardCompatible</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#databindingName">databindingName</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The databinding framework, which is being used by the generated
sources.<br /><b>Default value is</b>: <tt>adb</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#externalMapping">externalMapping</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#flattenFiles">flattenFiles</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#generateAllClasses">generateAllClasses</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to generate simply all classes. This is only valid in
conjunction with &quot;generateServerSide&quot;.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#generateServerSide">generateServerSide</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether server side sources are being generated.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#generateServerSideInterface">generateServerSideInterface</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to generate the server side interface.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#generateServicesXml">generateServicesXml</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether a &quot;services.xml&quot; file is being generated.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#generateTestcase">generateTestcase</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether a test case is being generated.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#httpProxyHost">httpProxyHost</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#httpProxyPassword">httpProxyPassword</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#httpProxyPort">httpProxyPort</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#httpProxyUser">httpProxyUser</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#jibxBindingFile">jibxBindingFile</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The binding file for JiBX databinding.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#language">language</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The programming language of the generated sources.<br /><b>Default value is</b>: <tt>java</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#namespaceToPackages">namespaceToPackages</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Map of namespace URI to packages in the format
<tt>uri1=package1,uri2=package2,...</tt>. Using this parameter
is discouraged. In general, you should use the
<tt>namespaceUris</tt> parameter. However, the latter cannot be
set on the command line.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#namespaceURIs">namespaceURIs</a></b></td>
            
<td><tt>NamespaceURIMapping[]</tt></td>
            
<td><tt>-</tt></td>
            
<td>Map of namespace URI to packages. Example: 


<div>
<pre>
&lt;namespaceURIs&gt;
  &lt;namespaceURI&gt;
    &lt;uri&gt;uri1&lt;/uri&gt;
    &lt;packageName&gt;package1&lt;/packageName&gt;
  &lt;/namespaceURI&gt;
  ...
&lt;/namespaceURI&gt;
</pre></div><br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#options">options</a></b></td>
            
<td><tt>Properties</tt></td>
            
<td><tt>-</tt></td>
            
<td>Specify databinding specific extra options<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#outputDirectory">outputDirectory</a></b></td>
            
<td><tt>File</tt></td>
            
<td><tt>-</tt></td>
            
<td>The output directory, where the generated sources are being
created.<br /><b>Default value is</b>: <tt>${project.build.directory}/generated-sources/axis2/wsdl2code</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#overWrite">overWrite</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#packageName">packageName</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Package name of the generated sources; will be used to create a
package structure below the output directory.<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#portName">portName</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Port name, for which to generate sources. By default, sources will
be generated for a randomly picked port.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#repositoryPath">repositoryPath</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#serviceName">serviceName</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Service name, for which to generate sources. By default, sources
will be generated for all services.<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#skipBuildXML">skipBuildXML</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#skipMessageReceiver">skipMessageReceiver</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#skipWSDL">skipWSDL</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#suppressPrefixes">suppressPrefixes</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#syncMode">syncMode</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>Mode, for which sources are being generated; either of &quot;sync&quot;,
&quot;async&quot; or &quot;both&quot;.<br /><b>Default value is</b>: <tt>both</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#targetResourcesFolderLocation">targetResourcesFolderLocation</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#targetSourceFolderLocation">targetSourceFolderLocation</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /><b>Default value is</b>: <tt>src</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#unpackClasses">unpackClasses</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>Whether to unpack classes.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#unwrap">unwrap</a></b></td>
            
<td><tt>boolean</tt></td>
            
<td><tt>-</tt></td>
            
<td>This will select between wrapped and unwrapped during code
generation. Maps to the -uw option of the command line tool.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td><b><a href="#wsdlFile">wsdlFile</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>The WSDL file, which is being read.<br /><b>Default value is</b>: <tt>src/main/resources/service.wsdl</tt>.</td>
          </tr>
          
<tr class="a">
            
<td><b><a href="#wsdlVersion">wsdlVersion</a></b></td>
            
<td><tt>String</tt></td>
            
<td><tt>-</tt></td>
            
<td>(no description)<br /></td>
          </tr>
        </table>
      </div>
      
<div class="section">
<h3><a name="Parameter_Details"></a>Parameter Details</h3>
        
<p><b><a name="allPorts">allPorts</a>:</b></p>
        
<div>Set this to true to generate code for all ports.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.allPorts}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="backwardCompatible">backwardCompatible</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.backwardCompatible}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="databindingName">databindingName</a>:</b></p>
        
<div>The databinding framework, which is being used by the generated
sources.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.databindingName}</tt></li>
          
<li><b>Default</b>: <tt>adb</tt></li>
        </ul><hr />
<p><b><a name="externalMapping">externalMapping</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.externalMapping}</tt></li>
        </ul><hr />
<p><b><a name="flattenFiles">flattenFiles</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.flattenFiles}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="generateAllClasses">generateAllClasses</a>:</b></p>
        
<div>Whether to generate simply all classes. This is only valid in
conjunction with &quot;generateServerSide&quot;.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.generateAllClasses}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="generateServerSide">generateServerSide</a>:</b></p>
        
<div>Whether server side sources are being generated.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.generateServerSide}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="generateServerSideInterface">generateServerSideInterface</a>:</b></p>
        
<div>Whether to generate the server side interface.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.generateServerSideInterface}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="generateServicesXml">generateServicesXml</a>:</b></p>
        
<div>Whether a &quot;services.xml&quot; file is being generated.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.generateServicesXml}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="generateTestcase">generateTestcase</a>:</b></p>
        
<div>Whether a test case is being generated.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.generateTestCase}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="httpProxyHost">httpProxyHost</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.http-proxy-host}</tt></li>
        </ul><hr />
<p><b><a name="httpProxyPassword">httpProxyPassword</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.http-proxy-password}</tt></li>
        </ul><hr />
<p><b><a name="httpProxyPort">httpProxyPort</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.http-proxy-port}</tt></li>
        </ul><hr />
<p><b><a name="httpProxyUser">httpProxyUser</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.http-proxy-user}</tt></li>
        </ul><hr />
<p><b><a name="jibxBindingFile">jibxBindingFile</a>:</b></p>
        
<div>The binding file for JiBX databinding.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.jibxBindingFile}</tt></li>
        </ul><hr />
<p><b><a name="language">language</a>:</b></p>
        
<div>The programming language of the generated sources.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.language}</tt></li>
          
<li><b>Default</b>: <tt>java</tt></li>
        </ul><hr />
<p><b><a name="namespaceToPackages">namespaceToPackages</a>:</b></p>
        
<div>Map of namespace URI to packages in the format
<tt>uri1=package1,uri2=package2,...</tt>. Using this parameter
is discouraged. In general, you should use the
<tt>namespaceUris</tt> parameter. However, the latter cannot be
set on the command line.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.namespaceToPackages}</tt></li>
        </ul><hr />
<p><b><a name="namespaceURIs">namespaceURIs</a>:</b></p>
        
<div>Map of namespace URI to packages. Example: 


<div>
<pre>
&lt;namespaceURIs&gt;
  &lt;namespaceURI&gt;
    &lt;uri&gt;uri1&lt;/uri&gt;
    &lt;packageName&gt;package1&lt;/packageName&gt;
  &lt;/namespaceURI&gt;
  ...
&lt;/namespaceURI&gt;
</pre></div></div>
        
<ul>
          
<li><b>Type</b>: <tt>org.apache.axis2.maven2.wsdl2code.NamespaceURIMapping[]</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
        </ul><hr />
<p><b><a name="options">options</a>:</b></p>
        
<div>Specify databinding specific extra options</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.util.Properties</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.java2wsdl.options}</tt></li>
        </ul><hr />
<p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
        
<div>The output directory, where the generated sources are being
created.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.io.File</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.target}</tt></li>
          
<li><b>Default</b>: <tt>${project.build.directory}/generated-sources/axis2/wsdl2code</tt></li>
        </ul><hr />
<p><b><a name="overWrite">overWrite</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.overWrite}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="packageName">packageName</a>:</b></p>
        
<div>Package name of the generated sources; will be used to create a
package structure below the output directory.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.package}</tt></li>
        </ul><hr />
<p><b><a name="portName">portName</a>:</b></p>
        
<div>Port name, for which to generate sources. By default, sources will
be generated for a randomly picked port.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.portName}</tt></li>
        </ul><hr />
<p><b><a name="repositoryPath">repositoryPath</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.repositoryPath}</tt></li>
        </ul><hr />
<p><b><a name="serviceName">serviceName</a>:</b></p>
        
<div>Service name, for which to generate sources. By default, sources
will be generated for all services.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.serviceName}</tt></li>
        </ul><hr />
<p><b><a name="skipBuildXML">skipBuildXML</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.skipBuildXML}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="skipMessageReceiver">skipMessageReceiver</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.skipMessageReceiver}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="skipWSDL">skipWSDL</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.skipWSDL}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="suppressPrefixes">suppressPrefixes</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.suppressPrefixes}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="syncMode">syncMode</a>:</b></p>
        
<div>Mode, for which sources are being generated; either of &quot;sync&quot;,
&quot;async&quot; or &quot;both&quot;.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.syncMode}</tt></li>
          
<li><b>Default</b>: <tt>both</tt></li>
        </ul><hr />
<p><b><a name="targetResourcesFolderLocation">targetResourcesFolderLocation</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.targetResourcesFolderLocation}</tt></li>
        </ul><hr />
<p><b><a name="targetSourceFolderLocation">targetSourceFolderLocation</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.targetSourceFolderLocation}</tt></li>
          
<li><b>Default</b>: <tt>src</tt></li>
        </ul><hr />
<p><b><a name="unpackClasses">unpackClasses</a>:</b></p>
        
<div>Whether to unpack classes.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.unpackClasses}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="unwrap">unwrap</a>:</b></p>
        
<div>This will select between wrapped and unwrapped during code
generation. Maps to the -uw option of the command line tool.</div>
        
<ul>
          
<li><b>Type</b>: <tt>boolean</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.unwrap}</tt></li>
          
<li><b>Default</b>: <tt>false</tt></li>
        </ul><hr />
<p><b><a name="wsdlFile">wsdlFile</a>:</b></p>
        
<div>The WSDL file, which is being read.</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.wsdlFile}</tt></li>
          
<li><b>Default</b>: <tt>src/main/resources/service.wsdl</tt></li>
        </ul><hr />
<p><b><a name="wsdlVersion">wsdlVersion</a>:</b></p>
        
<div>(no description)</div>
        
<ul>
          
<li><b>Type</b>: <tt>java.lang.String</tt></li>
          
<li><b>Required</b>: <tt>No</tt></li>
          
<li><b>Expression</b>: <tt>${axis2.wsdl2code.wsdlVersion}</tt></li>
        </ul>
      </div>
    </div>
  

                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                                      <p >Copyright &copy;                    2004&#x2013;2016
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
                </div>

        
                </div>
    </footer>
        </body>
</html>