<?xml version="1.0"?>
<!-- =================== DO NOT EDIT THIS FILE ====================         -->
<!-- Generated by Modello 1.8.3,                                            -->
<!-- any modifications will be overwritten.                                 -->
<!-- ==============================================================         -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/POM/4.0.0" targetNamespace="http://maven.apache.org/POM/4.0.0">
  <xs:element name="project" type="Model">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;project&amp;gt;&lt;/code&gt; element is the root of the descriptor.
        The following table lists all of the possible child elements.
        
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="Model">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;project&amp;gt;&lt;/code&gt; element is the root of the descriptor.
        The following table lists all of the possible child elements.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="modelVersion" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Declares to which version of project descriptor this POM conforms.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="parent" type="Parent">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The location of the parent project, if one exists. Values from the parent
            project will be the default for this project if they are left unspecified. The location
            is given as a group ID, artifact ID and version.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="groupId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            A universally unique identifier for a project. It is normal to
            use a fully-qualified package name to distinguish it from other
            projects with a similar name (eg. &lt;code&gt;org.apache.maven&lt;/code&gt;).
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="artifactId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The identifier for this artifact that is unique within the group given by the
            group ID. An artifact is something that is either produced or used by a project.
            Examples of artifacts produced by Maven for a project include: JARs, source and binary
            distributions, and WARs.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The current version of the artifact produced by this project.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="packaging" type="xs:string" default="jar">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The type of artifact this project produces, for example &lt;code&gt;jar&lt;/code&gt;
              &lt;code&gt;war&lt;/code&gt;
              &lt;code&gt;ear&lt;/code&gt;
              &lt;code&gt;pom&lt;/code&gt;.
            Plugins can create their own packaging, and
            therefore their own packaging types,
            so this list does not contain all possible types.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The full name of the project.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="description" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">A detailed description of the project, used by Maven whenever it needs to
            describe the project, such as on the web site. While this element can be specified as
            CDATA to enable the use of HTML tags within the description, it is discouraged to allow
            plain text representation. If you need to modify the index page of the generated web
            site, you are able to specify your own instead of adjusting this text.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The URL to the project&apos;s homepage.
            &lt;br /&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ path adjustment] + artifactId
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="inceptionYear" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The year of the project&apos;s inception, specified with 4 digits. This value is
            used when generating copyright notices as well as being informational.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="organization" type="Organization">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">This element describes various attributes of the organization to which the
            project belongs. These attributes are utilized when documentation is created (for
            copyright notices and links).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="licenses">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            This element describes all of the licenses for this project.
            Each license is described by a &lt;code&gt;license&lt;/code&gt; element, which
            is then described by additional elements.
            Projects should only list the license(s) that applies to the project
            and not the licenses that apply to dependencies.
            If multiple licenses are listed, it is assumed that the user can select
            any of them, not that they must accept all.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="license" minOccurs="0" maxOccurs="unbounded" type="License"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="developers">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">Describes the committers of a project.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="developer" minOccurs="0" maxOccurs="unbounded" type="Developer"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="contributors">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">Describes the contributors to a project that are not yet committers.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="contributor" minOccurs="0" maxOccurs="unbounded" type="Contributor"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="mailingLists">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">Contains information about a project&apos;s mailing lists.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="mailingList" minOccurs="0" maxOccurs="unbounded" type="MailingList"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="prerequisites" type="Prerequisites">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Describes the prerequisites in the build environment for this project.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="modules">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The modules (sometimes called subprojects) to build as a part of this
            project. Each module listed is a relative path to the directory containing the module.
            To be consistent with the way default urls are calculated from parent, it is recommended
            to have module names match artifact ids.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="module" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="scm" type="Scm">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Specification for the SCM used by the project, such as CVS, Subversion, etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="issueManagement" type="IssueManagement">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The project&apos;s issue management system information.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="ciManagement" type="CiManagement">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The project&apos;s continuous integration information.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="distributionManagement" type="DistributionManagement">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Distribution information for a project that enables deployment of the site
            and artifacts to remote web servers and repositories respectively.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="properties">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Properties that can be used throughout the POM as a substitution, and
            are used as filters in resources if enabled.
            The format is &lt;code&gt;&amp;lt;name&amp;gt;value&amp;lt;/name&amp;gt;&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="dependencyManagement" type="DependencyManagement">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Default dependency information for projects that inherit from this one. The
            dependencies in this section are not immediately resolved. Instead, when a POM derived
            from this one declares a dependency described by a matching groupId and artifactId, the
            version and other values from this section are used for that dependency if they were not
            already specified.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="dependencies">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            This element describes all of the dependencies associated with a
            project.
            These dependencies are used to construct a classpath for your
            project during the build process. They are automatically downloaded from the
            repositories defined in this project.
            See &lt;a href=&quot;http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html&quot;&gt;the
            dependency mechanism&lt;/a&gt; for more information.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="dependency" minOccurs="0" maxOccurs="unbounded" type="Dependency"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="repositories">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The lists of the remote repositories for discovering dependencies and
            extensions.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="repository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="pluginRepositories">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The lists of the remote repositories for discovering plugins for builds and
            reports.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="pluginRepository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="build" type="Build">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">Information required to build the project.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="reports">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            &lt;b&gt;Deprecated&lt;/b&gt;. Now ignored by Maven.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="reporting" type="Reporting">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            This element includes the specification of report plugins to use
            to generate the reports on the Maven-generated site.
            These reports will be run when a user executes &lt;code&gt;mvn site&lt;/code&gt;.
            All of the reports will be included in the navigation bar for browsing.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="profiles">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">A listing of project-local build profiles which will modify the build process
            when activated.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="profile" minOccurs="0" maxOccurs="unbounded" type="Profile"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Parent">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;parent&amp;gt;&lt;/code&gt; element contains information required to locate the parent project from which
        this project will inherit from.
        &lt;strong&gt;Note:&lt;/strong&gt; The children of this element are not interpolated and must be given as literal values.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="groupId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The group id of the parent project to inherit from.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="artifactId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The artifact id of the parent project to inherit from.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The version of the parent project to inherit.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="relativePath" type="xs:string" default="../pom.xml">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The relative path of the parent &lt;code&gt;pom.xml&lt;/code&gt; file within the check out.
            If not specified, it defaults to &lt;code&gt;../pom.xml&lt;/code&gt;.
            Maven looks for the parent POM first in this location on
            the filesystem, then the local repository, and lastly in the remote repo.
            &lt;code&gt;relativePath&lt;/code&gt; allows you to select a different location,
            for example when your structure is flat, or deeper without an intermediate parent POM.
            However, the group ID, artifact ID and version are still required,
            and must match the file in the location given or it will revert to the repository for the POM.
            This feature is only for enhancing the development in a local checkout of that project.
            Set the value to an empty string in case you want to disable the feature and always resolve
            the parent POM from the repositories.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Organization">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">Specifies the organization that produces this project.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The full name of the organization.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The URL to the organization&apos;s home page.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="DistributionManagement">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">This elements describes all that pertains to distribution for a project. It is
        primarily used for deployment of artifacts and the site produced by the build.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="repository" type="DeploymentRepository">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Information needed to deploy the artifacts generated by the project to a
            remote repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="snapshotRepository" type="DeploymentRepository">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Where to deploy snapshots of artifacts to. If not given, it defaults to the
            &lt;code&gt;repository&lt;/code&gt; element.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="site" type="Site">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Information needed for deploying the web site of the project.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="downloadUrl" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The URL of the project&apos;s download page. If not given users will be
            referred to the homepage given by &lt;code&gt;url&lt;/code&gt;.
            This is given to assist in locating artifacts that are not in the repository due to
            licensing restrictions.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="relocation" type="Relocation">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Relocation information of the artifact if it has been moved to a new group ID
            and/or artifact ID.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="status" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Gives the status of this artifact in the remote repository.
            This must not be set in your local project, as it is updated by
            tools placing it in the reposiory. Valid values are: &lt;code&gt;none&lt;/code&gt; (default),
            &lt;code&gt;converted&lt;/code&gt; (repository manager converted this from an Maven 1 POM),
            &lt;code&gt;partner&lt;/code&gt;
            (directly synced from a partner Maven 2 repository), &lt;code&gt;deployed&lt;/code&gt; (was deployed from a Maven 2
            instance), &lt;code&gt;verified&lt;/code&gt; (has been hand verified as correct and final).
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Relocation">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Describes where an artifact has moved to. If any of the values are omitted, it is
        assumed to be the same as it was before.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="groupId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The group ID the artifact has moved to.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="artifactId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The new artifact ID of the artifact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The new version of the artifact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="message" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">An additional message to show the user about the move, such as the reason.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Site">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Contains the information needed for deploying websites.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="id" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            A unique identifier for a deployment location. This is used to match the
            site to configuration in the &lt;code&gt;settings.xml&lt;/code&gt; file, for example.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Human readable name of the deployment location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The url of the location where website is deployed, in the form &lt;code&gt;protocol://hostname/path&lt;/code&gt;.
            &lt;br /&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ path adjustment] + artifactId
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="DeploymentRepository">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Repository contains the information needed for deploying to the remote
        repository.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="uniqueVersion" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Whether to assign snapshots a unique version comprised of the timestamp and
            build number, or to use the same version each time</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="releases" type="RepositoryPolicy">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">How to handle downloading of releases from this repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="snapshots" type="RepositoryPolicy">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">How to handle downloading of snapshots from this repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="id" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            A unique identifier for a repository. This is used to match the repository
            to configuration in the &lt;code&gt;settings.xml&lt;/code&gt; file, for example. Furthermore, the identifier is
            used during POM inheritance and profile injection to detect repositories that should be merged.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Human readable name of the repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The url of the repository, in the form &lt;code&gt;protocol://hostname/path&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="layout" type="xs:string" default="default">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The type of layout this repository uses for locating and storing artifacts -
            can be &lt;code&gt;legacy&lt;/code&gt; or &lt;code&gt;default&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="RepositoryPolicy">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Download policy.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="enabled" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether to use this repository for downloading this type of artifact. Note: While the type
            of this field is &lt;code&gt;String&lt;/code&gt; for technical reasons, the semantic type is actually
            &lt;code&gt;Boolean&lt;/code&gt;. Default value is &lt;code&gt;true&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="updatePolicy" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The frequency for downloading updates - can be
            &lt;code&gt;always,&lt;/code&gt;
            &lt;code&gt;daily&lt;/code&gt;
            (default),
            &lt;code&gt;interval:XXX&lt;/code&gt;
            (in minutes) or
            &lt;code&gt;never&lt;/code&gt;
            (only if it doesn&apos;t exist locally).
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="checksumPolicy" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            What to do when verification of an artifact checksum fails. Valid values are
            &lt;code&gt;ignore&lt;/code&gt;
            ,
            &lt;code&gt;fail&lt;/code&gt;
            or
            &lt;code&gt;warn&lt;/code&gt;
            (the default).
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Prerequisites">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Describes the prerequisites a project can have.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="maven" type="xs:string" default="2.0">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            For a plugin project, the minimum version of Maven required to use
            the resulting plugin.&lt;br /&gt;
            For specifying the minimum version of Maven required to build a
            project, this element is &lt;b&gt;deprecated&lt;/b&gt;. Use the Maven Enforcer
            Plugin&apos;s &lt;a href=&quot;https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html&quot;&gt;&lt;code&gt;requireMavenVersion&lt;/code&gt;&lt;/a&gt;
            rule instead.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Contributor">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">Description of a person who has contributed to the project, but who does not have
        commit privileges. Usually, these contributions come in the form of patches submitted.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The full name of the contributor.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="email" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The email address of the contributor.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The URL for the homepage of the contributor.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="organization" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The organization to which the contributor belongs.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="organizationUrl" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The URL of the organization.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="roles">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The roles the contributor plays in the project. Each role is described by a
            &lt;code&gt;role&lt;/code&gt; element, the body of which is a role name. This can also be used to
            describe the contribution.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="role" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="timezone" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
              The timezone the contributor is in. Typically, this is a number in the range
              &lt;a href=&quot;http://en.wikipedia.org/wiki/UTC%E2%88%9212:00&quot;&gt;-12&lt;/a&gt; to &lt;a href=&quot;http://en.wikipedia.org/wiki/UTC%2B14:00&quot;&gt;+14&lt;/a&gt;
              or a valid time zone id like &quot;America/Montreal&quot; (UTC-05:00) or &quot;Europe/Paris&quot; (UTC+01:00).
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="properties">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">Properties about the contributor, such as an instant messenger handle.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Scm">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;scm&amp;gt;&lt;/code&gt; element contains informations required to the SCM
        (Source Control Management) of the project.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="connection" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The source control management system URL
            that describes the repository and how to connect to the
            repository. For more information, see the
            &lt;a href=&quot;http://maven.apache.org/scm/scm-url-format.html&quot;&gt;URL format&lt;/a&gt;
            and &lt;a href=&quot;http://maven.apache.org/scm/scms-overview.html&quot;&gt;list of supported SCMs&lt;/a&gt;.
            This connection is read-only.
            &lt;br /&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ path adjustment] + artifactId
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="developerConnection" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Just like &lt;code&gt;connection&lt;/code&gt;, but for developers, i.e. this scm connection
            will not be read only.
            &lt;br /&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ path adjustment] + artifactId
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="tag" type="xs:string" default="HEAD">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The tag of current code. By default, it&apos;s set to HEAD during development.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The URL to the project&apos;s browsable SCM repository, such as ViewVC or Fisheye.
            &lt;br /&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ path adjustment] + artifactId
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Repository">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">A repository contains the information needed for establishing connections with
        remote repository.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="releases" type="RepositoryPolicy">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">How to handle downloading of releases from this repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="snapshots" type="RepositoryPolicy">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">How to handle downloading of snapshots from this repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="id" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            A unique identifier for a repository. This is used to match the repository
            to configuration in the &lt;code&gt;settings.xml&lt;/code&gt; file, for example. Furthermore, the identifier is
            used during POM inheritance and profile injection to detect repositories that should be merged.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Human readable name of the repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The url of the repository, in the form &lt;code&gt;protocol://hostname/path&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="layout" type="xs:string" default="default">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The type of layout this repository uses for locating and storing artifacts -
            can be &lt;code&gt;legacy&lt;/code&gt; or &lt;code&gt;default&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="IssueManagement">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Information about the issue tracking (or bug tracking) system used to manage this
        project.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="system" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The name of the issue management system, e.g. Bugzilla</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">URL for the issue management system used by the project.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="CiManagement">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;CiManagement&amp;gt;&lt;/code&gt; element contains informations required to the
        continuous integration system of the project.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="system" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The name of the continuous integration system, e.g. &lt;code&gt;continuum&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">URL for the continuous integration system used by the project if it has a web
            interface.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="notifiers">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Configuration for notifying developers/users when a build is unsuccessful,
            including user information and notification mode.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="notifier" minOccurs="0" maxOccurs="unbounded" type="Notifier"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Notifier">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Configures one method for notifying users/developers when a build breaks.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="type" type="xs:string" default="mail">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The mechanism used to deliver notifications.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="sendOnError" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Whether to send notifications on error.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="sendOnFailure" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Whether to send notifications on failure.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="sendOnSuccess" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Whether to send notifications on success.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="sendOnWarning" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Whether to send notifications on warning.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="address" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            &lt;b&gt;Deprecated&lt;/b&gt;. Where to send the notification to - eg email address.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="configuration">
        <xs:annotation>
          <xs:documentation source="version">0.0.0+</xs:documentation>
          <xs:documentation source="description">Extended configuration specific to this notifier goes here.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Profile">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Modifications to the build process which is activated based on environmental
        parameters or command line arguments.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="id" type="xs:string" default="default">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The identifier of this build profile. This is used for command line
            activation, and identifies profiles to be merged.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="activation" type="Activation">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The conditional logic which will automatically trigger the inclusion of this
            profile.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="build" type="BuildBase">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Information required to build the project.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="modules">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The modules (sometimes called subprojects) to build as a part of this
            project. Each module listed is a relative path to the directory containing the module.
            To be consistent with the way default urls are calculated from parent, it is recommended
            to have module names match artifact ids.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="module" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="distributionManagement" type="DistributionManagement">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Distribution information for a project that enables deployment of the site
            and artifacts to remote web servers and repositories respectively.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="properties">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Properties that can be used throughout the POM as a substitution, and
            are used as filters in resources if enabled.
            The format is &lt;code&gt;&amp;lt;name&amp;gt;value&amp;lt;/name&amp;gt;&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="dependencyManagement" type="DependencyManagement">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Default dependency information for projects that inherit from this one. The
            dependencies in this section are not immediately resolved. Instead, when a POM derived
            from this one declares a dependency described by a matching groupId and artifactId, the
            version and other values from this section are used for that dependency if they were not
            already specified.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="dependencies">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            This element describes all of the dependencies associated with a
            project.
            These dependencies are used to construct a classpath for your
            project during the build process. They are automatically downloaded from the
            repositories defined in this project.
            See &lt;a href=&quot;http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html&quot;&gt;the
            dependency mechanism&lt;/a&gt; for more information.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="dependency" minOccurs="0" maxOccurs="unbounded" type="Dependency"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="repositories">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The lists of the remote repositories for discovering dependencies and
            extensions.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="repository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="pluginRepositories">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The lists of the remote repositories for discovering plugins for builds and
            reports.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="pluginRepository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="reports">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            &lt;b&gt;Deprecated&lt;/b&gt;. Now ignored by Maven.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="reporting" type="Reporting">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            This element includes the specification of report plugins to use
            to generate the reports on the Maven-generated site.
            These reports will be run when a user executes &lt;code&gt;mvn site&lt;/code&gt;.
            All of the reports will be included in the navigation bar for browsing.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="BuildBase">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">Generic informations for a build.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="defaultGoal" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The default goal (or phase in Maven 2) to execute when none is specified for
            the project. Note that in case of a multi-module build, only the default goal of the top-level
            project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3,
            multiple goals/phases can be separated by whitespace.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="resources">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            This element describes all of the classpath resources such as properties
            files associated with a project. These resources are often included in the final
            package.
            The default value is &lt;code&gt;src/main/resources&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="resource" minOccurs="0" maxOccurs="unbounded" type="Resource"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="testResources">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            This element describes all of the classpath resources such as properties
            files associated with a project&apos;s unit tests.
            The default value is &lt;code&gt;src/test/resources&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="testResource" minOccurs="0" maxOccurs="unbounded" type="Resource"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="directory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            The directory where all files generated by the build are placed.
            The default value is &lt;code&gt;target&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="finalName" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The filename (excluding the extension, and with no path information) that
            the produced artifact will be called.
            The default value is &lt;code&gt;${artifactId}-${version}&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="filters">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The list of filter properties files that are used when filtering is enabled.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="filter" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="pluginManagement" type="PluginManagement">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Default plugin information to be made available for reference by projects
            derived from this one. This plugin configuration will not be resolved or bound to the
            lifecycle unless referenced. Any local configuration for a given plugin will override
            the plugin&apos;s entire definition here.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="plugins">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The list of plugins to use.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="plugin" minOccurs="0" maxOccurs="unbounded" type="Plugin"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Plugin">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;plugin&amp;gt;&lt;/code&gt; element contains informations required for a plugin.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="groupId" type="xs:string" default="org.apache.maven.plugins">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The group ID of the plugin in the repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="artifactId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The artifact ID of the plugin in the repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The version (or valid range of versions) of the plugin to be used.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="extensions" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether to load Maven extensions (such as packaging and type handlers) from
            this plugin. For performance reasons, this should only be enabled when necessary. Note: While the type
            of this field is &lt;code&gt;String&lt;/code&gt; for technical reasons, the semantic type is actually
            &lt;code&gt;Boolean&lt;/code&gt;. Default value is &lt;code&gt;false&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="executions">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Multiple specifications of a set of goals to execute during the build
            lifecycle, each having (possibly) a different configuration.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="execution" minOccurs="0" maxOccurs="unbounded" type="PluginExecution"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="dependencies">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Additional dependencies that this project needs to introduce to the plugin&apos;s
            classloader.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="dependency" minOccurs="0" maxOccurs="unbounded" type="Dependency"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="goals">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            &lt;b&gt;Deprecated&lt;/b&gt;. Unused by Maven.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="inherited" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether any configuration should be propagated to child POMs. Note: While the type
            of this field is &lt;code&gt;String&lt;/code&gt; for technical reasons, the semantic type is actually
            &lt;code&gt;Boolean&lt;/code&gt;. Default value is &lt;code&gt;true&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="configuration">
        <xs:annotation>
          <xs:documentation source="version">0.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            &lt;p&gt;The configuration as DOM object.&lt;/p&gt;
            &lt;p&gt;By default, every element content is trimmed, but starting with Maven 3.1.0, you can add
            &lt;code&gt;xml:space=&quot;preserve&quot;&lt;/code&gt; to elements you want to preserve whitespace.&lt;/p&gt;
            &lt;p&gt;You can control how child POMs inherit configuration from parent POMs by adding &lt;code&gt;combine.children&lt;/code&gt;
            or &lt;code&gt;combine.self&lt;/code&gt; attributes to the children of the configuration element:&lt;/p&gt;
            &lt;ul&gt;
            &lt;li&gt;&lt;code&gt;combine.children&lt;/code&gt;: available values are &lt;code&gt;merge&lt;/code&gt; (default) and &lt;code&gt;append&lt;/code&gt;,&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;combine.self&lt;/code&gt;: available values are &lt;code&gt;merge&lt;/code&gt; (default) and &lt;code&gt;override&lt;/code&gt;.&lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;See &lt;a href=&quot;http://maven.apache.org/pom.html#Plugins&quot;&gt;POM Reference documentation&lt;/a&gt; and
            &lt;a href=&quot;http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html&quot;&gt;Xpp3DomUtils&lt;/a&gt;
            for more information.&lt;/p&gt;
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Dependency">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;dependency&amp;gt;&lt;/code&gt; element contains information about a dependency
        of the project.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="groupId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The project group that produced the dependency, e.g.
            &lt;code&gt;org.apache.maven&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="artifactId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The unique id for an artifact produced by the project group, e.g.
            &lt;code&gt;maven-artifact&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The version of the dependency, e.g. &lt;code&gt;3.2.1&lt;/code&gt;. In Maven 2, this can also be
            specified as a range of versions.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="type" type="xs:string" default="jar">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The type of dependency. While it
            usually represents the extension on the filename of the dependency,
            that is not always the case. A type can be mapped to a different
            extension and a classifier.
            The type often corresponds to the packaging used, though this is also
            not always the case.
            Some examples are &lt;code&gt;jar&lt;/code&gt;, &lt;code&gt;war&lt;/code&gt;, &lt;code&gt;ejb-client&lt;/code&gt;
            and &lt;code&gt;test-jar&lt;/code&gt;: see &lt;a href=&quot;../maven-core/artifact-handlers.html&quot;&gt;default
            artifact handlers&lt;/a&gt; for a list.
            New types can be defined by plugins that set
            &lt;code&gt;extensions&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;, so this is not a complete list.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="classifier" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The classifier of the dependency. It is appended to
            the filename after the version. This allows:
            &lt;ul&gt;
            &lt;li&gt;refering to attached artifact, for example &lt;code&gt;sources&lt;/code&gt; and &lt;code&gt;javadoc&lt;/code&gt;:
            see &lt;a href=&quot;../maven-core/artifact-handlers.html&quot;&gt;default artifact handlers&lt;/a&gt; for a list,&lt;/li&gt;
            &lt;li&gt;distinguishing two artifacts
            that belong to the same POM but were built differently.
            For example, &lt;code&gt;jdk14&lt;/code&gt; and &lt;code&gt;jdk15&lt;/code&gt;.&lt;/li&gt;
            &lt;/ul&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="scope" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The scope of the dependency - &lt;code&gt;compile&lt;/code&gt;, &lt;code&gt;runtime&lt;/code&gt;,
            &lt;code&gt;test&lt;/code&gt;, &lt;code&gt;system&lt;/code&gt;, and &lt;code&gt;provided&lt;/code&gt;. Used to
            calculate the various classpaths used for compilation, testing, and so on.
            It also assists in determining which artifacts to include in a distribution of
            this project. For more information, see
            &lt;a href=&quot;http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html&quot;&gt;the
            dependency mechanism&lt;/a&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="systemPath" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            FOR SYSTEM SCOPE ONLY. Note that use of this property is &lt;b&gt;discouraged&lt;/b&gt;
            and may be replaced in later versions. This specifies the path on the filesystem
            for this dependency.
            Requires an absolute path for the value, not relative.
            Use a property that gives the machine specific absolute path,
            e.g. &lt;code&gt;${java.home}&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="exclusions">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Lists a set of artifacts that should be excluded from this dependency&apos;s
            artifact list when it comes to calculating transitive dependencies.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclusion" minOccurs="0" maxOccurs="unbounded" type="Exclusion"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="optional" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Indicates the dependency is optional for use of this library. While the
            version of the dependency will be taken into account for dependency calculation if the
            library is used elsewhere, it will not be passed on transitively. Note: While the type
            of this field is &lt;code&gt;String&lt;/code&gt; for technical reasons, the semantic type is actually
            &lt;code&gt;Boolean&lt;/code&gt;. Default value is &lt;code&gt;false&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Exclusion">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;exclusion&amp;gt;&lt;/code&gt; element contains informations required to exclude
        an artifact to the project.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="artifactId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The artifact ID of the project to exclude.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="groupId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The group ID of the project to exclude.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="PluginExecution">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;execution&amp;gt;&lt;/code&gt; element contains informations required for the
        execution of a plugin.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="id" type="xs:string" default="default">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The identifier of this execution for labelling the goals during the build,
            and for matching executions to merge during inheritance and profile injection.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="phase" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The build lifecycle phase to bind the goals in this execution to. If omitted,
            the goals will be bound to the default phase specified by the plugin. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="goals">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The goals to execute with the given configuration.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="goal" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="inherited" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether any configuration should be propagated to child POMs. Note: While the type
            of this field is &lt;code&gt;String&lt;/code&gt; for technical reasons, the semantic type is actually
            &lt;code&gt;Boolean&lt;/code&gt;. Default value is &lt;code&gt;true&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="configuration">
        <xs:annotation>
          <xs:documentation source="version">0.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            &lt;p&gt;The configuration as DOM object.&lt;/p&gt;
            &lt;p&gt;By default, every element content is trimmed, but starting with Maven 3.1.0, you can add
            &lt;code&gt;xml:space=&quot;preserve&quot;&lt;/code&gt; to elements you want to preserve whitespace.&lt;/p&gt;
            &lt;p&gt;You can control how child POMs inherit configuration from parent POMs by adding &lt;code&gt;combine.children&lt;/code&gt;
            or &lt;code&gt;combine.self&lt;/code&gt; attributes to the children of the configuration element:&lt;/p&gt;
            &lt;ul&gt;
            &lt;li&gt;&lt;code&gt;combine.children&lt;/code&gt;: available values are &lt;code&gt;merge&lt;/code&gt; (default) and &lt;code&gt;append&lt;/code&gt;,&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;combine.self&lt;/code&gt;: available values are &lt;code&gt;merge&lt;/code&gt; (default) and &lt;code&gt;override&lt;/code&gt;.&lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;See &lt;a href=&quot;http://maven.apache.org/pom.html#Plugins&quot;&gt;POM Reference documentation&lt;/a&gt; and
            &lt;a href=&quot;http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html&quot;&gt;Xpp3DomUtils&lt;/a&gt;
            for more information.&lt;/p&gt;
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Resource">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">This element describes all of the classpath resources associated with a project
        or unit tests.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="targetPath" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Describe the resource target path. The path is relative to the target/classes
            directory (i.e. &lt;code&gt;${project.build.outputDirectory}&lt;/code&gt;).
            For example, if you want that resource to appear in a specific package
            (&lt;code&gt;org.apache.maven.messages&lt;/code&gt;), you must specify this
            element with this value: &lt;code&gt;org/apache/maven/messages&lt;/code&gt;.
            This is not required if you simply put the resources in that directory
            structure at the source, however.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="filtering" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether resources are filtered to replace tokens with parameterised values or not.
            The values are taken from the &lt;code&gt;properties&lt;/code&gt; element and from the
            properties in the files listed in the &lt;code&gt;filters&lt;/code&gt; element. Note: While the type
            of this field is &lt;code&gt;String&lt;/code&gt; for technical reasons, the semantic type is actually
            &lt;code&gt;Boolean&lt;/code&gt;. Default value is &lt;code&gt;false&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="directory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">Describe the directory where the resources are stored. The path is relative
            to the POM.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includes">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            A list of patterns to include, e.g. &lt;code&gt;**&amp;#47;*.xml&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="excludes">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            A list of patterns to exclude, e.g. &lt;code&gt;**&amp;#47;*.xml&lt;/code&gt;
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="PluginManagement">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Section for management of default plugin information for use in a group of POMs.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="plugins">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The list of plugins to use.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="plugin" minOccurs="0" maxOccurs="unbounded" type="Plugin"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Reporting">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Section for management of reports and their configuration.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="excludeDefaults" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            If true, then the default reports are not included in the site generation.
            This includes the reports in the &quot;Project Info&quot; menu. Note: While the type
            of this field is &lt;code&gt;String&lt;/code&gt; for technical reasons, the semantic type is actually
            &lt;code&gt;Boolean&lt;/code&gt;. Default value is &lt;code&gt;false&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Where to store all of the generated reports. The default is
            &lt;code&gt;${project.build.directory}/site&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="plugins">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The reporting plugins to use and their configuration.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="plugin" minOccurs="0" maxOccurs="unbounded" type="ReportPlugin"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ReportPlugin">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;plugin&amp;gt;&lt;/code&gt; element contains informations required for a report plugin.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="groupId" type="xs:string" default="org.apache.maven.plugins">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The group ID of the reporting plugin in the repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="artifactId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The artifact ID of the reporting plugin in the repository.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The version of the reporting plugin to be used.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="reportSets">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Multiple specifications of a set of reports, each having (possibly) different
            configuration. This is the reporting parallel to an &lt;code&gt;execution&lt;/code&gt; in the build.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="reportSet" minOccurs="0" maxOccurs="unbounded" type="ReportSet"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="inherited" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether any configuration should be propagated to child POMs. Note: While the type
            of this field is &lt;code&gt;String&lt;/code&gt; for technical reasons, the semantic type is actually
            &lt;code&gt;Boolean&lt;/code&gt;. Default value is &lt;code&gt;true&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="configuration">
        <xs:annotation>
          <xs:documentation source="version">0.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            &lt;p&gt;The configuration as DOM object.&lt;/p&gt;
            &lt;p&gt;By default, every element content is trimmed, but starting with Maven 3.1.0, you can add
            &lt;code&gt;xml:space=&quot;preserve&quot;&lt;/code&gt; to elements you want to preserve whitespace.&lt;/p&gt;
            &lt;p&gt;You can control how child POMs inherit configuration from parent POMs by adding &lt;code&gt;combine.children&lt;/code&gt;
            or &lt;code&gt;combine.self&lt;/code&gt; attributes to the children of the configuration element:&lt;/p&gt;
            &lt;ul&gt;
            &lt;li&gt;&lt;code&gt;combine.children&lt;/code&gt;: available values are &lt;code&gt;merge&lt;/code&gt; (default) and &lt;code&gt;append&lt;/code&gt;,&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;combine.self&lt;/code&gt;: available values are &lt;code&gt;merge&lt;/code&gt; (default) and &lt;code&gt;override&lt;/code&gt;.&lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;See &lt;a href=&quot;http://maven.apache.org/pom.html#Plugins&quot;&gt;POM Reference documentation&lt;/a&gt; and
            &lt;a href=&quot;http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html&quot;&gt;Xpp3DomUtils&lt;/a&gt;
            for more information.&lt;/p&gt;
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ReportSet">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Represents a set of reports and configuration to be used to generate them.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="id" type="xs:string" default="default">
        <xs:annotation>
          <xs:documentation source="version">0.0.0+</xs:documentation>
          <xs:documentation source="description">The unique id for this report set, to be used during POM inheritance and profile injection
            for merging of report sets.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="reports">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The list of reports from this plugin which should be generated from this set.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="report" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="inherited" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether any configuration should be propagated to child POMs. Note: While the type
            of this field is &lt;code&gt;String&lt;/code&gt; for technical reasons, the semantic type is actually
            &lt;code&gt;Boolean&lt;/code&gt;. Default value is &lt;code&gt;true&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="configuration">
        <xs:annotation>
          <xs:documentation source="version">0.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            &lt;p&gt;The configuration as DOM object.&lt;/p&gt;
            &lt;p&gt;By default, every element content is trimmed, but starting with Maven 3.1.0, you can add
            &lt;code&gt;xml:space=&quot;preserve&quot;&lt;/code&gt; to elements you want to preserve whitespace.&lt;/p&gt;
            &lt;p&gt;You can control how child POMs inherit configuration from parent POMs by adding &lt;code&gt;combine.children&lt;/code&gt;
            or &lt;code&gt;combine.self&lt;/code&gt; attributes to the children of the configuration element:&lt;/p&gt;
            &lt;ul&gt;
            &lt;li&gt;&lt;code&gt;combine.children&lt;/code&gt;: available values are &lt;code&gt;merge&lt;/code&gt; (default) and &lt;code&gt;append&lt;/code&gt;,&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;combine.self&lt;/code&gt;: available values are &lt;code&gt;merge&lt;/code&gt; (default) and &lt;code&gt;override&lt;/code&gt;.&lt;/li&gt;
            &lt;/ul&gt;
            &lt;p&gt;See &lt;a href=&quot;http://maven.apache.org/pom.html#Plugins&quot;&gt;POM Reference documentation&lt;/a&gt; and
            &lt;a href=&quot;http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html&quot;&gt;Xpp3DomUtils&lt;/a&gt;
            for more information.&lt;/p&gt;
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Activation">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">The conditions within the build runtime environment which will trigger the
        automatic inclusion of the build profile. Multiple conditions can be defined, which must
        be all satisfied to activate the profile.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="activeByDefault" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">If set to true, this profile will be active unless another profile in this
            pom is activated using the command line -P option or by one of that profile&apos;s
            activators.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="jdk" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies that this profile will be activated when a matching JDK is detected.
            For example, &lt;code&gt;1.4&lt;/code&gt; only activates on JDKs versioned 1.4,
            while &lt;code&gt;!1.4&lt;/code&gt; matches any JDK that is not version 1.4. Ranges are supported too:
            &lt;code&gt;[1.5,)&lt;/code&gt; activates when the JDK is 1.5 minimum.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="os" type="ActivationOS">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Specifies that this profile will be activated when matching operating system
            attributes are detected.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="property" type="ActivationProperty">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Specifies that this profile will be activated when this system property is
            specified.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="file" type="ActivationFile">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Specifies that this profile will be activated based on existence of a file.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ActivationProperty">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">This is the property specification used to activate a profile. If the value field
        is empty, then the existence of the named property will activate the profile, otherwise it
        does a case-sensitive match against the property value as well.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The name of the property to be used to activate a profile.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="value" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The value of the property required to activate a profile.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ActivationOS">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">This is an activator which will detect an operating system&apos;s attributes in order
        to activate its profile.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The name of the operating system to be used to activate the profile. This must be an exact match
            of the &lt;code&gt;${os.name}&lt;/code&gt; Java property, such as &lt;code&gt;Windows XP&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="family" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The general family of the OS to be used to activate the profile, such as
            &lt;code&gt;windows&lt;/code&gt; or &lt;code&gt;unix&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="arch" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The architecture of the operating system to be used to activate the
          profile.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The version of the operating system to be used to activate the
          profile.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ActivationFile">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">This is the file specification used to activate the profile. The &lt;code&gt;missing&lt;/code&gt; value
        is the location of a file that needs to exist, and if it doesn&apos;t, the profile will be
        activated. On the other hand, &lt;code&gt;exists&lt;/code&gt; will test for the existence of the file and if it is
        there, the profile will be activated.&lt;br/&gt;
        Variable interpolation for these file specifications is limited to &lt;code&gt;${basedir}&lt;/code&gt;,
        System properties and request properties.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="missing" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The name of the file that must be missing to activate the
          profile.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="exists" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The name of the file that must exist to activate the profile.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="DependencyManagement">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Section for management of default dependency information for use in a group of
        POMs.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="dependencies">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The dependencies specified here are not used until they are referenced in a
            POM within the group. This allows the specification of a &quot;standard&quot; version for a
            particular dependency.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="dependency" minOccurs="0" maxOccurs="unbounded" type="Dependency"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Build">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;build&amp;gt;&lt;/code&gt; element contains informations required to build the project.
        Default values are defined in Super POM.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="sourceDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            This element specifies a directory containing the source of the project. The
            generated build system will compile the sources from this directory when the project is
            built. The path given is relative to the project descriptor.
            The default value is &lt;code&gt;src/main/java&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="scriptSourceDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            This element specifies a directory containing the script sources of the
            project. This directory is meant to be different from the sourceDirectory, in that its
            contents will be copied to the output directory in most cases (since scripts are
            interpreted rather than compiled).
            The default value is &lt;code&gt;src/main/scripts&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="testSourceDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            This element specifies a directory containing the unit test source of the
            project. The generated build system will compile these directories when the project is
            being tested. The path given is relative to the project descriptor.
            The default value is &lt;code&gt;src/test/java&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            The directory where compiled application classes are placed.
            The default value is &lt;code&gt;target/classes&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="testOutputDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            The directory where compiled test classes are placed.
            The default value is &lt;code&gt;target/test-classes&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="extensions">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">A set of build extensions to use from this project.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="extension" minOccurs="0" maxOccurs="unbounded" type="Extension"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="defaultGoal" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The default goal (or phase in Maven 2) to execute when none is specified for
            the project. Note that in case of a multi-module build, only the default goal of the top-level
            project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3,
            multiple goals/phases can be separated by whitespace.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="resources">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            This element describes all of the classpath resources such as properties
            files associated with a project. These resources are often included in the final
            package.
            The default value is &lt;code&gt;src/main/resources&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="resource" minOccurs="0" maxOccurs="unbounded" type="Resource"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="testResources">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            This element describes all of the classpath resources such as properties
            files associated with a project&apos;s unit tests.
            The default value is &lt;code&gt;src/test/resources&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="testResource" minOccurs="0" maxOccurs="unbounded" type="Resource"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="directory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            The directory where all files generated by the build are placed.
            The default value is &lt;code&gt;target&lt;/code&gt;.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="finalName" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The filename (excluding the extension, and with no path information) that
            the produced artifact will be called.
            The default value is &lt;code&gt;${artifactId}-${version}&lt;/code&gt;.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="filters">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The list of filter properties files that are used when filtering is enabled.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="filter" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="pluginManagement" type="PluginManagement">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">Default plugin information to be made available for reference by projects
            derived from this one. This plugin configuration will not be resolved or bound to the
            lifecycle unless referenced. Any local configuration for a given plugin will override
            the plugin&apos;s entire definition here.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="plugins">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The list of plugins to use.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="plugin" minOccurs="0" maxOccurs="unbounded" type="Plugin"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Extension">
    <xs:annotation>
      <xs:documentation source="version">4.0.0+</xs:documentation>
      <xs:documentation source="description">Describes a build extension to utilise.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="groupId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The group ID of the extension&apos;s artifact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="artifactId" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The artifact ID of the extension.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">4.0.0+</xs:documentation>
          <xs:documentation source="description">The version of the extension.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="License">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">Describes the licenses for this project. This is used to generate the license
        page of the project&apos;s web site, as well as being taken into consideration in other reporting
        and validation. The licenses listed for the project are that of the project itself, and not
        of dependencies.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The full legal name of the license.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The official url for the license text.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="distribution" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The primary method by which this project may be distributed.
            &lt;dl&gt;
              &lt;dt&gt;repo&lt;/dt&gt;
              &lt;dd&gt;may be downloaded from the Maven repository&lt;/dd&gt;
              &lt;dt&gt;manual&lt;/dt&gt;
              &lt;dd&gt;user must manually download and install the dependency.&lt;/dd&gt;
            &lt;/dl&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="comments" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">Addendum information pertaining to this license.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="MailingList">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">This element describes all of the mailing lists associated with a project. The
        auto-generated site references this information.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The name of the mailing list.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="subscribe" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The email address or link that can be used to subscribe to
            the mailing list.  If this is an email address, a
            &lt;code&gt;mailto:&lt;/code&gt; link will automatically be created
            when the documentation is created.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="unsubscribe" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The email address or link that can be used to unsubscribe to
            the mailing list.  If this is an email address, a
            &lt;code&gt;mailto:&lt;/code&gt; link will automatically be created
            when the documentation is created.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="post" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The email address or link that can be used to post to
            the mailing list.  If this is an email address, a
            &lt;code&gt;mailto:&lt;/code&gt; link will automatically be created
            when the documentation is created.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="archive" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The link to a URL where you can browse the mailing list archive.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="otherArchives">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The link to alternate URLs where you can browse the list archive.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="otherArchive" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Developer">
    <xs:annotation>
      <xs:documentation source="version">3.0.0+</xs:documentation>
      <xs:documentation source="description">Information about one of the committers on this project.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="id" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The unique ID of the developer in the SCM.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The full name of the contributor.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="email" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The email address of the contributor.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The URL for the homepage of the contributor.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="organization" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The organization to which the contributor belongs.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="organizationUrl" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">The URL of the organization.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="roles">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The roles the contributor plays in the project. Each role is described by a
            &lt;code&gt;role&lt;/code&gt; element, the body of which is a role name. This can also be used to
            describe the contribution.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="role" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="timezone" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">
            
              The timezone the contributor is in. Typically, this is a number in the range
              &lt;a href=&quot;http://en.wikipedia.org/wiki/UTC%E2%88%9212:00&quot;&gt;-12&lt;/a&gt; to &lt;a href=&quot;http://en.wikipedia.org/wiki/UTC%2B14:00&quot;&gt;+14&lt;/a&gt;
              or a valid time zone id like &quot;America/Montreal&quot; (UTC-05:00) or &quot;Europe/Paris&quot; (UTC+01:00).
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="properties">
        <xs:annotation>
          <xs:documentation source="version">3.0.0+</xs:documentation>
          <xs:documentation source="description">Properties about the contributor, such as an instant messenger handle.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
</xs:schema>