<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>    <html class="no-js ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>    <html class="no-js ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">

  <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
       Remove this if you use the .htaccess -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>projectVersionMetadata</title>

  <!-- Mobile viewport optimized: j.mp/bplateviewport -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- CSS: implied media="all" -->
  <link rel="stylesheet" href="css/style.css?v=2">
  <link rel="stylesheet" href="css/prettify.css">

  <!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects -->
  <script src="js/libs/modernizr-1.7.min.js"></script>

</head>

<body class="home">

  <div class="container">
    <header>
      <div id="header" class="column first last span-20">
        <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="index.html">projectVersionMetadata</a></div>
        <div id="primary" class="column span-18 append-1 prepend-1 first last">
          <ul class="navigation">
            <li id="nav-rest"><a href="rest.html">REST</a></li>
            <li id="nav-data"><a href="model.html">Data Model</a></li>
          </ul>
        </div>
        <div>
          <ul class="xbreadcrumbs" id="breadcrumbs">
            <li>
              <a href="index.html" class="home">Home</a> &gt;
            </li>
            <li>
              <a href="model.html">Data Model</a> &gt;
              <ul>
                <li><a href="model.html">Data Model</a></li>
                <li><a href="rest.html">REST</a></li>
              </ul>
            </li>
            <li>
              <a href="ns0.html">ns0</a> &gt;
              <ul>
                <li><a href="ns0.html">ns0</a></li>
              </ul>
            </li>
            <li class="current">
              <a href="ns0_projectVersionMetadata.html">projectVersionMetadata</a>
              <ul>
                <li><a href="ns0_organisationInformation.html">organisationInformation</a></li>
                <li><a href="ns0_networkConfiguration.html">networkConfiguration</a></li>
                <li><a href="ns0_ldapConfiguration.html">ldapConfiguration</a></li>
                <li><a href="ns0_facetedMetadata.html">facetedMetadata</a></li>
                <li><a href="ns0_proxyConnector.html">proxyConnector</a></li>
                <li><a href="ns0_dependency.html">dependency</a></li>
                <li><a href="ns0_legacyArtifactPath.html">legacyArtifactPath</a></li>
                <li><a href="ns0_redbackImplementationsInformations.html">redbackImplementationsInformations</a></li>
                <li><a href="ns0_redbackRuntimeConfiguration.html">redbackRuntimeConfiguration</a></li>
                <li><a href="ns0_artifactContent.html">artifactContent</a></li>
                <li><a href="ns0_queueEntry.html">queueEntry</a></li>
                <li><a href="ns0_artifactTransferRequest.html">artifactTransferRequest</a></li>
                <li><a href="ns0_consumerScanningStatistics.html">consumerScanningStatistics</a></li>
                <li><a href="ns0_networkProxy.html">networkProxy</a></li>
                <li><a href="ns0_remoteRepository.html">remoteRepository</a></li>
                <li><a href="ns0_abstractRepositoryConnector.html">abstractRepositoryConnector</a></li>
                <li><a href="ns0_ldapGroupMapping.html">ldapGroupMapping</a></li>
                <li><a href="ns0_adminRepositoryConsumer.html">adminRepositoryConsumer</a></li>
                <li><a href="ns0_cacheConfiguration.html">cacheConfiguration</a></li>
                <li><a href="ns0_repositoryGroup.html">repositoryGroup</a></li>
                <li><a href="ns0_propertyEntry.html">propertyEntry</a></li>
                <li><a href="ns0_proxyConnectorRule.html">proxyConnectorRule</a></li>
                <li><a href="ns0_RBACManagerImplementationInformation.html">RBACManagerImplementationInformation</a></li>
                <li><a href="ns0_browseResultEntry.html">browseResultEntry</a></li>
                <li><a href="ns0_artifactContentEntry.html">artifactContentEntry</a></li>
                <li><a href="ns0_repositoryScanStatistics.html">repositoryScanStatistics</a></li>
                <li><a href="ns0_uiConfiguration.html">uiConfiguration</a></li>
                <li><a href="ns0_scm.html">scm</a></li>
                <li><a href="ns0_userManagerImplementationInformation.html">userManagerImplementationInformation</a></li>
                <li><a href="ns0_cacheEntry.html">cacheEntry</a></li>
                <li><a href="ns0_organization.html">organization</a></li>
                <li><a href="ns0_archivaRepositoryStatistics.html">archivaRepositoryStatistics</a></li>
                <li><a href="ns0_stringList.html">stringList</a></li>
                <li><a href="ns0_license.html">license</a></li>
                <li><a href="ns0_issueManagement.html">issueManagement</a></li>
                <li><a href="ns0_managedRepository.html">managedRepository</a></li>
                <li><a href="ns0_fileType.html">fileType</a></li>
                <li><a href="ns0_abstractImplementationInformation.html">abstractImplementationInformation</a></li>
                <li><a href="ns0_browseResult.html">browseResult</a></li>
                <li><a href="ns0_searchRequest.html">searchRequest</a></li>
                <li><a href="ns0_ciManagement.html">ciManagement</a></li>
                <li><a href="ns0_metadataAddRequest.html">metadataAddRequest</a></li>
                <li><a href="ns0_artifact.html">artifact</a></li>
                <li><a href="ns0_projectVersionMetadata.html">projectVersionMetadata</a></li>
                <li><a href="ns0_repositoryScannerStatistics.html">repositoryScannerStatistics</a></li>
                <li><a href="ns0_mailingList.html">mailingList</a></li>
                <li><a href="ns0_policyInformation.html">policyInformation</a></li>
                <li><a href="ns0_proxyConnectorRuleType.html">proxyConnectorRuleType</a></li>
                <li><a href="ns0_archivaRuntimeConfiguration.html">archivaRuntimeConfiguration</a></li>
                <li><a href="ns0_groupIdList.html">groupIdList</a></li>
                <li><a href="ns0_abstractRepository.html">abstractRepository</a></li>
                <li><a href="ns0_versionsList.html">versionsList</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </header>
    <div id="main" class="column first last span-20">
      <h1>projectVersionMetadata</h1>
      <table>
        <tr>
          <td align="right">Extends:</td>
          <td><a href="ns0_facetedMetadata.html">facetedMetadata</a></td>
        </tr>
        <tr>
          <td align="right">Namespace:</td>
          <td>(default namespace)</td>
        </tr>
        <tr>
          <td align="right">XML Schema:</td>
          <td><a href="ns0.xsd">ns0.xsd</a></td>
        </tr>
      </table>

      <h2>XML</h2>
      <h3>Elements</h3>
      <table>
        <tr>
          <th>name (type)</th>
          <th>min/max<br/>occurs</th>
          <th>description</th>
        </tr>
        <tr>
          <td>
            licenses (<a href="ns0_license.html">license</a>)
          </td>
          <td>0/unbounded</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            organization (<a href="ns0_organization.html">organization</a>)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            mailingLists (<a href="ns0_mailingList.html">mailingList</a>)
          </td>
          <td>0/unbounded</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            name (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            incomplete (boolean)
          </td>
          <td>1/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            issueManagement (<a href="ns0_issueManagement.html">issueManagement</a>)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            ciManagement (<a href="ns0_ciManagement.html">ciManagement</a>)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            id (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            description (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            dependencies (<a href="ns0_dependency.html">dependency</a>)
          </td>
          <td>0/unbounded</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            scm (<a href="ns0_scm.html">scm</a>)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
        <tr>
          <td>
            url (string)
          </td>
          <td>0/1</td>
          <td>
          </td>
        </tr>
      </table>

      <h2>JSON</h2>
      <table>
        <tr>
          <th>property</th>
          <th>type</th>
          <th>description</th>
        </tr>
        <tr>
          <td>licenses</td>
          <td>
              array of licenses (<a href="ns0_license.html">license</a>)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>organization</td>
          <td>
              organization (<a href="ns0_organization.html">organization</a>)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>mailingLists</td>
          <td>
              array of mailingLists (<a href="ns0_mailingList.html">mailingList</a>)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>name</td>
          <td>
              name (string)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>incomplete</td>
          <td>
              incomplete (boolean)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>issueManagement</td>
          <td>
              issueManagement (<a href="ns0_issueManagement.html">issueManagement</a>)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>ciManagement</td>
          <td>
              ciManagement (<a href="ns0_ciManagement.html">ciManagement</a>)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>id</td>
          <td>
              id (string)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>description</td>
          <td>
              description (string)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>dependencies</td>
          <td>
              array of dependencies (<a href="ns0_dependency.html">dependency</a>)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>scm</td>
          <td>
              scm (<a href="ns0_scm.html">scm</a>)
          </td>
          <td>
          </td>
        </tr>
        <tr>
          <td>url</td>
          <td>
              url (string)
          </td>
          <td>
          </td>
        </tr>
      </table>

      <div class="clear" />
    </div>
    <footer>
      <div id="footer">
        Generated by <a href="http://enunciate.codehaus.org">Enunciate</a>.
      </div>
    </footer>
  </div> <!--! end of #container -->

  <!-- JavaScript at the bottom for fast page loading -->

  <!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
  <script>window.jQuery || document.write("<script src='js/libs/jquery-1.5.1.min.js'>\x3C/script>")</script>

  <!--manage the navigation menu-->
  <script src="js/libs/xbreadcrumbs.js"></script>
  <script>
    $(function() {
      $('#breadcrumbs').xBreadcrumbs();
    });
  </script>


  <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ -->
  <script src="js/libs/prettify/prettify.js"></script>
  <script>
    $(function() {
      prettyPrint();
    });
  </script>

  <!--[if lt IE 7 ]>
    <script src="js/libs/dd_belatedpng.js"></script>
    <script>DD_belatedPNG.fix("img, .png_bg"); // Fix any <img> or .png_bg bg-images. Also, please read goo.gl/mZiyb </script>
  <![endif]-->

</body>
</html>