You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2005/10/05 10:14:24 UTC

svn commit: r295015 [2/2] - /maven/maven-1/core/trunk/src/xsd/maven-v4_0_0.xsd

Modified: maven/maven-1/core/trunk/src/xsd/maven-v4_0_0.xsd
URL: http://svn.apache.org/viewcvs/maven/maven-1/core/trunk/src/xsd/maven-v4_0_0.xsd?rev=295015&r1=295014&r2=295015&view=diff
==============================================================================
--- maven/maven-1/core/trunk/src/xsd/maven-v4_0_0.xsd (original)
+++ maven/maven-1/core/trunk/src/xsd/maven-v4_0_0.xsd Wed Oct  5 01:14:19 2005
@@ -42,7 +42,7 @@
           <xs:documentation source="description">
             The short name of the project group. This value is used to group
             all jars for a project in one directory. For more info look at the
-            &lt;a href="/user-guide.html#Naming%20Conventions"&gt;user guide&lt;/a&gt;.
+            &lt;a href="/reference/conventions.html"&gt;user guide&lt;/a&gt;.
           </xs:documentation>
         </xs:annotation>
       </xs:element>
@@ -104,6 +104,14 @@
           </xs:documentation>
         </xs:annotation>
       </xs:element>
+      <xs:element name="prerequisites" minOccurs="0" 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 name="issueManagement" minOccurs="0" type="IssueManagement">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
@@ -319,7 +327,20 @@
           </xs:sequence>
         </xs:complexType>
       </xs:element>
-      <xs:element name="reports" minOccurs="0" type="Reports">
+      <xs:element name="reports" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">
+            NOT A VALID ELEMENT. LISTED TO ALLOW LEGACY REPOSITORY POMs TO PARSE.
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="reporting" minOccurs="0" type="Reporting">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
@@ -351,210 +372,31 @@
           <xs:documentation source="description">Distribution information for a project.</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.  Each mailing list is described by a
-        &lt;code&gt;mailingList&lt;/code&gt; element, which is then described by
-        additional elements (described below).  The auto-generated site
-        documentation references this information.
-      </xs:documentation>
-    </xs:annotation>
-    <xs:all>
-      <xs:element name="name" minOccurs="0" 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 name="subscribe" minOccurs="0" 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 name="unsubscribe" minOccurs="0" 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 name="post" minOccurs="0" 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 name="archive" minOccurs="0" 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 name="otherArchives" minOccurs="0">
+      <xs:element name="properties" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            The link to other URLs where you can browse the list archive.
+             Properties used to fill in plugin configuration
           </xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="otherArchive" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
           </xs:sequence>
         </xs:complexType>
       </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 who produces this project.</xs:documentation>
-    </xs:annotation>
-    <xs:all>
-      <xs:element name="name" minOccurs="0" 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 name="url" minOccurs="0" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
-          <xs:documentation source="description">The URL to the organization's home page.</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">
-         Repository contains the information needed
-         for establishing connections with remote repoistory
-      </xs:documentation>
-    </xs:annotation>
-    <xs:all>
-      <xs:element name="id" minOccurs="0" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            A unique identifier for a repository.
-          </xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element name="name" minOccurs="0" 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 name="url" minOccurs="0" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-             The url of the repository
-          </xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element name="snapshotPolicy" minOccurs="0" type="xs:string" default="daily">
-        <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            The policy for downloading snapshots - can be "always", "daily" (default), "interval:XXX" (in minutes) or
-            "never".
-          </xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element name="layout" minOccurs="0" 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 "legacy" or "default".</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-    </xs:all>
-  </xs:complexType>
-  <xs:complexType name="Scm">
-    <xs:annotation>
-      <xs:documentation source="version">4.0.0</xs:documentation>
-    </xs:annotation>
-    <xs:all>
-      <xs:element name="connection" minOccurs="0" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            The source configuration management system URL
-            that describes the repository and how to connect to the
-            repository.  This is used by Maven when
-            &lt;a
-              href="/plugins/dist/index.html"&gt;building versions&lt;/a&gt;
-            from specific ID.
-          </xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element name="developerConnection" minOccurs="0" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            Just like connection, but for developers, i.e. this scm connection
-            will not be read only.
-          </xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element name="tag" minOccurs="0" 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's set to HEAD during development.
-          </xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element name="url" minOccurs="0" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The URL to the project's browsable CVS repository.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-    </xs:all>
-  </xs:complexType>
-  <xs:complexType name="Developer">
+  <xs:complexType name="Contributor">
     <xs:annotation>
       <xs:documentation source="version">3.0.0+</xs:documentation>
       <xs:documentation source="description">
-        Information about one of the committers on this project. Derived from
-        &lt;code&gt;Contributor&lt;/code&gt;.
+        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 name="id" minOccurs="0" type="xs:string">
-        <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
-          <xs:documentation source="description">The username of the developer.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
       <xs:element name="name" minOccurs="0" type="xs:string">
         <xs:annotation>
           <xs:documentation source="version">3.0.0+</xs:documentation>
@@ -617,314 +459,325 @@
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
     </xs:all>
   </xs:complexType>
-  <xs:complexType name="Build">
+  <xs:complexType name="Profile">
     <xs:annotation>
-      <xs:documentation source="version">3.0.0+</xs:documentation>
+      <xs:documentation source="version">4.0.0</xs:documentation>
+      <xs:documentation source="description">
+        Modifications to the build process which is keyed on some
+        sort of environmental parameter.
+      </xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="sourceDirectory" minOccurs="0" type="xs:string">
+      <xs:element name="id" minOccurs="0" 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 source in this directory when the project is built.
-            The path given is relative to the project descriptor.
-          </xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The ID of this build profile, for activation
+            purposes.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="scriptSourceDirectory" minOccurs="0" type="xs:string">
+      <xs:element name="activation" minOccurs="0" type="Activation">
         <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).
-          </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 name="testSourceDirectory" minOccurs="0" type="xs:string">
+      <xs:element name="build" minOccurs="0" type="BuildBase">
         <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 unit tests must use the JUnit test framework.
-            The path given is relative to the project descriptor.
-          </xs:documentation>
+          <xs:documentation source="description">Information required to build the project.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="directory" minOccurs="0" type="xs:string">
+      <xs:element name="modules" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            The directory where all files generated by the build is placed.
-          </xs:documentation>
+          <xs:documentation source="description">The modules to build in addition to the current project</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 name="outputDirectory" minOccurs="0" type="xs:string">
+      <xs:element name="repositories" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            The directory where compiled application classes are placed.
-          </xs:documentation>
+          <xs:documentation source="description">The lists of the remote repositories</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 name="testOutputDirectory" minOccurs="0" type="xs:string">
+      <xs:element name="pluginRepositories" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            The directory where compiled test classes are placed.
-          </xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element name="defaultGoal" minOccurs="0" 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.
-          </xs:documentation>
+          <xs:documentation source="description">The lists of the remote repositories for discovering plugins</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 name="resources" minOccurs="0">
+      <xs:element name="dependencies" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">3.0.0+</xs:documentation>
           <xs:documentation source="description">
-            This element describes all of the resources associated with a 
-            project or unit tests. Each resource is described by a resource 
-            element, which is then described by additional elements (described 
-            &lt;a href="#resource"&gt;below&lt;/a&gt;). These resources are used to complete 
-            the jar file or to run unit test.
+            &lt;p&gt;
+              This element describes all of the dependencies associated with a
+              project.  Each dependency is described by a
+              &lt;code&gt;dependency&lt;/code&gt; element, which is then described by
+              additional elements (described below).
+            &lt;/p&gt;
+            &lt;p&gt;
+              These dependencies are used to construct a classpath for your 
+              project during the build process.
+            &lt;/p&gt;
+            &lt;p&gt;
+              Maven can automatically download these dependencies from a 
+              &lt;a href="/user-guide.html#Remote%20Repository%20Layout"&gt;remote repository&lt;/a&gt;.
+            &lt;/p&gt;
+            &lt;p&gt;
+              The filename that Maven downloads from the repository is 
+              &lt;code&gt;artifactId-version.jar&lt;/code&gt; where &lt;code&gt;artifactId&lt;/code&gt; 
+              corresponds to the &lt;code&gt;artifactId&lt;/code&gt; element and 
+              &lt;code&gt;version&lt;/code&gt; corresponds to the &lt;code&gt;version&lt;/code&gt; element.
+            &lt;/p&gt;
+            &lt;p&gt;
+              When Maven goes looking for a dependency in the remote repository, 
+              it uses the dependency element to construct the URL to download 
+              from. This URL is defined as:
+            &lt;/p&gt;
+            &lt;div class="source"&gt;
+              &lt;pre&gt;${repo}/${groupId}/${type}s/${artifactId}-${version}.${type}&lt;/pre&gt;
+            &lt;/div&gt;
+            &lt;p&gt;
+              Where
+            &lt;/p&gt;
+            &lt;dl&gt;
+              &lt;dt&gt;repo&lt;/dt&gt;
+              &lt;dd&gt;
+                is the remote repository URL specified by 
+                &lt;code&gt;${maven.repo.remote}&lt;/code&gt;
+              &lt;/dd&gt;
+              
+              &lt;dt&gt;groupId&lt;/dt&gt;
+              &lt;dd&gt;is taken from the dependency element&lt;/dd&gt;
+              
+              &lt;dt&gt;type&lt;/dt&gt;
+              &lt;dd&gt;is taken from the dependency element&lt;/dd&gt;
+              
+              &lt;dt&gt;artifactId&lt;/dt&gt;
+              &lt;dd&gt;is taken from the dependency element&lt;/dd&gt;
+              
+              &lt;dt&gt;version&lt;/dt&gt;
+              &lt;dd&gt;is taken from the dependency element&lt;/dd&gt;
+            &lt;/dl&gt;
           </xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="resource" minOccurs="0" maxOccurs="unbounded" type="Resource"/>
+            <xs:element name="dependency" minOccurs="0" maxOccurs="unbounded" type="Dependency"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
-      <xs:element name="testResources" minOccurs="0">
+      <xs:element name="reports" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            This element describes all of the resources associated with a 
-            project's unit tests. Each resource is described by a resource 
-            element, which is then described by additional elements (described
-            &lt;a href="#resource"&gt;below&lt;/a&gt;). These resources are used to complete 
-            the jar file or to run unit test.
+            NOT A VALID ELEMENT. LISTED TO ALLOW LEGACY REPOSITORY POMs TO PARSE.
           </xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="testResource" minOccurs="0" maxOccurs="unbounded" type="Resource"/>
+            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
-      <xs:element name="finalName" minOccurs="0" type="xs:string">
+      <xs:element name="reporting" minOccurs="0" type="Reporting">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            The filename (including an extension, but with no path information) that the produced artifact
-            will be called. The default value is artifactId-version.extension (where extension is derived from
-            type).
+            This element includes the specification of reports to be
+            included in a Maven-generated site.  These reports will be run
+            when a user executes &lt;code&gt;maven site&lt;/code&gt;.  All of the
+            reports will be included in the navigation bar for browsing in
+            the order they are specified.
           </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="pluginManagement" minOccurs="0" type="PluginManagement">
+      <xs:element name="dependencyManagement" minOccurs="0" type="DependencyManagement">
         <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 validated or bound to the lifecycle unless referenced. Any local
-            configuration for a given plugin will override the plugin's entire
-            definition here.
+            Default dependency information for grouped projects inheriting from 
+            this one. The dependency information here will not be checked.
+            Instead, when a POM derived from this one declares a dependency 
+            described by a groupId and an artifactId (version not necessary), 
+            the entries in here will supply default values for that dependency.
+            Any locally-supplied information for a particular dependency will
+            overwrite any information specified here for that project.
           </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="plugins" minOccurs="0">
+      <xs:element name="distributionManagement" minOccurs="0" type="DistributionManagement">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">Distribution information for a project.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="properties" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            The plugins specified here are not validated until they
-            are referenced in a POM within the group. This allows the
-            specification of a "standard" version for a particular
-            plugin.
+             Properties used to fill in plugin configuration
           </xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="plugin" minOccurs="0" maxOccurs="unbounded" type="Plugin"/>
+            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
     </xs:all>
   </xs:complexType>
-  <xs:complexType name="Plugin">
+  <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 parent build profile.
+      </xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="groupId" minOccurs="0" type="xs:string" default="org.apache.maven.plugins">
+      <xs:element name="activeByDefault" minOccurs="0" type="xs:boolean" default="false">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">Flag specifying whether this profile is active as a default.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="artifactId" minOccurs="0" type="xs:string">
+      <xs:element name="jdk" minOccurs="0" 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.
+          </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="version" minOccurs="0" type="xs:string">
+      <xs:element name="os" minOccurs="0" type="ActivationOS">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The version of the plugin to be used.</xs:documentation>
+          <xs:documentation source="description">
+            Specifies that this profile will be activated when matching OS attributes are detected.
+          </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="inherited" minOccurs="0" type="xs:string">
+      <xs:element name="property" minOccurs="0" type="ActivationProperty">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">Whether this plugin configuration should be propagated to child POMs.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element name="configuration" minOccurs="0">
-        <xs:annotation>
-          <xs:documentation source="version">0.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:complexType>
-          <xs:sequence>
-            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
-          </xs:sequence>
-        </xs:complexType>
       </xs:element>
-      <xs:element name="goals" minOccurs="0">
+      <xs:element name="file" minOccurs="0" 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:complexType>
-          <xs:sequence>
-            <xs:element name="goal" minOccurs="0" maxOccurs="unbounded" type="Goal"/>
-          </xs:sequence>
-        </xs:complexType>
       </xs:element>
     </xs:all>
   </xs:complexType>
-  <xs:complexType name="Goal">
+  <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 a profile. The missing value will be a the location
+        of a file that needs to exist, and if it doesn't the profile must run.  On the other hand exists will test 
+        for the existence of the file and if it is there will run the profile.
+      </xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="id" minOccurs="0" type="xs:string">
+      <xs:element name="missing" minOccurs="0" type="xs:string">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The name of the file that should be missing to activate a profile</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="inherited" minOccurs="0" type="xs:string">
+      <xs:element name="exists" minOccurs="0" type="xs:string">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">Whether this goal configuration should be propagated to child POMs.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element name="configuration" minOccurs="0">
-        <xs:annotation>
-          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">The name of the file that should exist to activate a profile</xs:documentation>
         </xs:annotation>
-        <xs:complexType>
-          <xs:sequence>
-            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
-          </xs:sequence>
-        </xs:complexType>
       </xs:element>
     </xs:all>
   </xs:complexType>
-  <xs:complexType name="PluginManagement">
+  <xs:complexType name="ActivationProperty">
     <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.
+        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 name="plugins" minOccurs="0">
+      <xs:element name="name" minOccurs="0" type="xs:string">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            The plugins specified here are not validated until they
-            are referenced in a POM within the group. This allows the
-            specification of a "standard" version for a particular
-            plugin.
-          </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 name="value" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The value of the property to be used to activate a profile</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="Resource">
+  <xs:complexType name="ActivationOS">
     <xs:annotation>
-      <xs:documentation source="version">3.0.0+</xs:documentation>
+      <xs:documentation source="version">4.0.0</xs:documentation>
       <xs:documentation source="description">
-        This element describes all of the resources associated with a project or 
-        unit tests. Each resource is described by a resource element, which is 
-        then described by additional elements (described 
-        &lt;a href="#resource"&gt;below&lt;/a&gt;). These resources are used to complete the 
-        jar file or to run unit test.
+        This is an activator which will detect an operating system's attributes in order to activate
+        its profile.
       </xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="targetPath" minOccurs="0" type="xs:string">
+      <xs:element name="name" minOccurs="0" type="xs:string">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
-          <xs:documentation source="description">
-            Describe the resource target path. For example, if you want that 
-            resource appear into 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;
-          </xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The name of the OS to be used to activate a profile</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="directory" minOccurs="0" type="xs:string">
+      <xs:element name="family" minOccurs="0" type="xs:string">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
-          <xs:documentation source="description">
-            Describe the directory where the resource is stored.
-            The path may be absolute, or relative to the project.xml file.
-          </xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The general family of the OS to be used to activate a profile (e.g. 'windows')</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="includes" minOccurs="0">
+      <xs:element name="arch" minOccurs="0" type="xs:string">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
-          <xs:documentation source="description">the description</xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The architecture of the OS to be used to activate a profile</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 name="excludes" minOccurs="0">
+      <xs:element name="version" minOccurs="0" type="xs:string">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
-          <xs:documentation source="description">the description</xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The version of the OS to be used to activate a profile</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>
@@ -999,7 +852,16 @@
           </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="scope" minOccurs="0" type="xs:string" default="compile">
+      <xs:element name="classifier" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">
+            The classifier of the dependency. This allows distinguishing two artifacts that belong to the same POM but
+            were built differently, and is appended to the filename after the version.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="scope" minOccurs="0" type="xs:string">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
@@ -1007,10 +869,17 @@
             calculate the various classpaths used for testing, etc. and for 
             determining which artifacts to include in a distribution of this
             project. For more information, see 
-            &lt;a href="http://maven.apache.org/maven2/dependencies.html"&gt;Dependency Mechanism&lt;/a&gt;.
+            &lt;a href="http://maven.apache.org/maven2/dependencies-mechanism.html"&gt;Dependency Mechanism&lt;/a&gt;.
           </xs:documentation>
         </xs:annotation>
       </xs:element>
+      <xs:element name="systemPath" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">FOR SYSTEM SCOPE ONLY. This specifies the path on the filesystem for this
+            dependency.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
       <xs:element name="exclusions" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
@@ -1025,8 +894,18 @@
           </xs:sequence>
         </xs:complexType>
       </xs:element>
-    </xs:all>
-  </xs:complexType>
+      <xs:element name="optional" minOccurs="0" type="xs:boolean" default="false">
+        <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.
+          </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>
@@ -1046,637 +925,1334 @@
       </xs:element>
     </xs:all>
   </xs:complexType>
-  <xs:complexType name="License">
+  <xs:complexType name="Reporting">
     <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 &lt;a href="/plugins/site/index.html"&gt;License&lt;/a&gt; page of
-        the project's web site. Typically the licenses listed for the project
-        are that of the project itself, and not of dependencies.
-      </xs:documentation>
+      <xs:documentation source="version">4.0.0</xs:documentation>
+      <xs:documentation source="description">Section for management of reports and configuration</xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="name" minOccurs="0" 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 name="url" minOccurs="0" type="xs:string">
+      <xs:element name="excludeDefaults" minOccurs="0" type="xs:boolean" default="false">
         <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: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</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="distribution" minOccurs="0" type="xs:string">
+      <xs:element name="outputDirectory" minOccurs="0" 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:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">Where to store all of the generated reports</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="comments" minOccurs="0" type="xs:string">
+      <xs:element name="plugins" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
-          <xs:documentation source="description">
-            Addendum information pertaining to this license.
-          </xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The report 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="IssueManagement">
+  <xs:complexType name="ReportPlugin">
     <xs:annotation>
       <xs:documentation source="version">4.0.0</xs:documentation>
-      <xs:documentation source="description">
-        Information about the bugtracking system used to manage this project.
-      </xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="system" minOccurs="0" type="xs:string">
+      <xs:element name="groupId" minOccurs="0" type="xs:string" default="org.apache.maven.plugins">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The name of the issue management system i.e. Bugzilla</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="url" minOccurs="0" type="xs:string">
+      <xs:element name="artifactId" minOccurs="0" 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="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 distributions 
-        produced by the build.
-      </xs:documentation>
-    </xs:annotation>
-    <xs:all>
-      <xs:element name="repository" minOccurs="0" type="Repository">
+      <xs:element name="version" minOccurs="0" type="xs:string">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            Information needed for deploying to remote repository artifacts 
-            generated by the project
-          </xs:documentation>
+          <xs:documentation source="description">The version of the reporter to be used.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="site" minOccurs="0" type="Site">
+      <xs:element name="inherited" minOccurs="0" type="xs:string">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            Information needed for deploying website files of the project.
-          </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="downloadUrl" minOccurs="0" type="xs:string">
+      <xs:element name="configuration" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="version">4.0.0+</xs:documentation>
-          <xs:documentation source="description">
-            The URL of the project's download page. If not given users will be referred to the homepage given by
-            &lt;code&gt;url&lt;/code&gt;.
-          </xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="reportSets" minOccurs="0">
+        <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</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:all>
   </xs:complexType>
-  <xs:complexType name="Site">
+  <xs:complexType name="ReportSet">
     <xs:annotation>
       <xs:documentation source="version">4.0.0</xs:documentation>
-      <xs:documentation source="description">
-         Site contains the information needed
-         for deploying websites.
-      </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 name="id" minOccurs="0" type="xs:string">
         <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.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="configuration" minOccurs="0">
+        <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">
-            A unique identifier for a deployment locataion.
-          </xs:documentation>
         </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+          </xs:sequence>
+        </xs:complexType>
       </xs:element>
-      <xs:element name="name" minOccurs="0" type="xs:string">
+      <xs:element name="inherited" minOccurs="0" 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 name="url" minOccurs="0" type="xs:string">
+      <xs:element name="reports" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-             The url of the location where website is deployed
+            The list of reports from this reporter/plugin which should be generated from this set 
+            (this configuration)
           </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:all>
   </xs:complexType>
-  <xs:complexType name="Reports">
+  <xs:complexType name="BuildBase">
     <xs:annotation>
-      <xs:documentation source="version">4.0.0</xs:documentation>
-      <xs:documentation source="description">Section for management of reports and configuration</xs:documentation>
+      <xs:documentation source="version">3.0.0+</xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="outputDirectory" minOccurs="0" type="xs:string">
+      <xs:element name="defaultGoal" minOccurs="0" 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</xs:documentation>
+          <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.
+          </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="plugins" minOccurs="0">
+      <xs:element name="resources" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            This element describes all of the resources associated with a 
+            project or unit tests. Each resource is described by a resource 
+            element, which is then described by additional elements (described 
+            &lt;a href="#resource"&gt;below&lt;/a&gt;). These resources are used to complete 
+            the jar file or to run unit test.
+          </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 name="testResources" minOccurs="0">
         <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:documentation source="description">
+            This element describes all of the resources associated with a 
+            project's unit tests. Each resource is described by a resource 
+            element, which is then described by additional elements (described
+            &lt;a href="#resource"&gt;below&lt;/a&gt;). These resources are used to complete 
+            the jar file or to run unit test.
+          </xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="plugin" minOccurs="0" maxOccurs="unbounded" type="Plugin"/>
+            <xs:element name="testResource" minOccurs="0" maxOccurs="unbounded" type="Resource"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
-    </xs:all>
-  </xs:complexType>
-  <xs:complexType name="CiManagement">
-    <xs:annotation>
-      <xs:documentation source="version">4.0.0</xs:documentation>
-    </xs:annotation>
-    <xs:all>
-      <xs:element name="system" minOccurs="0" type="xs:string">
+      <xs:element name="directory" minOccurs="0" 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 i.e. Bugzilla</xs:documentation>
+          <xs:documentation source="description">
+            The directory where all files generated by the build is placed.
+          </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="url" minOccurs="0" type="xs:string">
+      <xs:element name="finalName" minOccurs="0" 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.</xs:documentation>
+          <xs:documentation source="description">
+            The filename (including an extension, but with no path information) that the produced artifact
+            will be called. The default value is artifactId-version.extension (where extension is derived from
+            type).
+          </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="notifiers" minOccurs="0">
+      <xs:element name="filters" minOccurs="0">
         <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.
+          The list of filter properties files that are used when filtering is enabled.
           </xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="notifier" minOccurs="0" maxOccurs="unbounded" type="Notifier"/>
+            <xs:element name="filter" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
           </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 name="type" minOccurs="0" type="xs:string" default="mail">
+      <xs:element name="pluginManagement" minOccurs="0" type="PluginManagement">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The mechanism used to deliver notifications.</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 validated or bound to the lifecycle unless referenced. Any local
+            configuration for a given plugin will override the plugin's entire
+            definition here.
+          </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="address" minOccurs="0" type="xs:string">
+      <xs:element name="plugins" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            Where to send the notification to - eg email address
+            The plugins specified here are not validated until they
+            are referenced in a POM within the group. This allows the
+            specification of a "standard" version for a particular
+            plugin.
           </xs:documentation>
         </xs:annotation>
-      </xs:element>
-      <xs:element name="configuration" minOccurs="0">
-        <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="lax"/>
+            <xs:element name="plugin" minOccurs="0" maxOccurs="unbounded" type="Plugin"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
     </xs:all>
   </xs:complexType>
-  <xs:complexType name="Contributor">
+  <xs:complexType name="Plugin">
     <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:documentation source="version">4.0.0</xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="name" minOccurs="0" type="xs:string">
+      <xs:element name="groupId" minOccurs="0" type="xs:string" default="org.apache.maven.plugins">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
-          <xs:documentation source="description">The full name of the contributor.</xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="email" minOccurs="0" type="xs:string">
+      <xs:element name="artifactId" minOccurs="0" 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:documentation source="version">4.0.0</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="url" minOccurs="0" type="xs:string">
+      <xs:element name="version" minOccurs="0" 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:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The version of the plugin to be used.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="organization" minOccurs="0" type="xs:string">
+      <xs:element name="extensions" minOccurs="0" type="xs:boolean" default="false">
         <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: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</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="organizationUrl" minOccurs="0" type="xs:string">
+      <xs:element name="executions" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
-          <xs:documentation source="description">The URL of the organization.</xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">Multiple specifications of a set of goals, each having (possibly) 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 name="roles" minOccurs="0">
+      <xs:element name="dependencies" minOccurs="0">
         <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.
-          </xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">Additional dependencies that this project needs to introduce to the plugin</xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="role" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+            <xs:element name="dependency" minOccurs="0" maxOccurs="unbounded" type="Dependency"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
-      <xs:element name="timezone" minOccurs="0" type="xs:string">
+      <xs:element name="goals" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            The timezone the contributor is in. This is a number in the range -11 to 12.
+            NOT A VALID ELEMENT. LISTED TO ALLOW LEGACY REPOSITORY POMs TO PARSE.
           </xs:documentation>
         </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+          </xs:sequence>
+        </xs:complexType>
       </xs:element>
-      <xs:element name="properties" minOccurs="0">
+      <xs:element name="inherited" minOccurs="0" type="xs:string">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            Properties about the contributor, such as an instant messenger handle.
-          </xs:documentation>
+            Whether this container's configuration should be propagated to child POMs.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="configuration" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
     </xs:all>
   </xs:complexType>
-  <xs:complexType name="Parent">
+  <xs:complexType name="PluginExecution">
     <xs:annotation>
       <xs:documentation source="version">4.0.0</xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="artifactId" minOccurs="0" type="xs:string">
+      <xs:element name="id" minOccurs="0" type="xs:string" default="default">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The artifact id of the project to extend.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="groupId" minOccurs="0" type="xs:string">
+      <xs:element name="phase" minOccurs="0" 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 extend.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="version" minOccurs="0" type="xs:string">
+      <xs:element name="goals" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The version of the project to extend.</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 name="inherited" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">
+            Whether this container's configuration should be propagated to child POMs.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="configuration" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</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:complexType name="PluginManagement">
     <xs:annotation>
       <xs:documentation source="version">4.0.0</xs:documentation>
       <xs:documentation source="description">
-        Modifications to the build process which is keyed on some 
-        sort of environmental parameter.
+        Section for management of default plugin information for use in a group of POMs.
       </xs:documentation>
     </xs:annotation>
     <xs:all>
-      <xs:element name="id" minOccurs="0" type="xs:string">
+      <xs:element name="plugins" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The ID of this build profile, for activation 
-            purposes.</xs:documentation>
+          <xs:documentation source="description">
+            The plugins specified here are not validated until they
+            are referenced in a POM within the group. This allows the
+            specification of a "standard" version for a particular
+            plugin.
+          </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:element name="activation" minOccurs="0" type="Activation">
+    </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 resources associated with a project or 
+        unit tests. Each resource is described by a resource element, which is 
+        then described by additional elements (described 
+        &lt;a href="#resource"&gt;below&lt;/a&gt;). These resources are used to complete the 
+        jar file or to run unit test.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element name="targetPath" minOccurs="0" type="xs:string">
         <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:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            Describe the resource target path. For example, if you want that 
+            resource appear into 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;
+          </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="build" minOccurs="0" type="BuildBase">
+      <xs:element name="filtering" minOccurs="0" type="xs:boolean" default="false">
         <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">Information required to build the project.</xs:documentation>
+          <xs:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="description">Boolean. Describe if resources are filtered or not.</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="modules" minOccurs="0">
+      <xs:element name="directory" minOccurs="0" type="xs:string">
         <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The modules to build in addition to the current project</xs:documentation>
+          <xs:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            Describe the directory where the resource is stored.
+            The path may be absolute, or relative to the project.xml file.
+          </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 name="repositories" minOccurs="0">
+      <xs:element name="includes" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The lists of the remote repositories</xs:documentation>
+          <xs:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="description">the description</xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="repository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
+            <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
-      <xs:element name="pluginRepositories" minOccurs="0">
+      <xs:element name="excludes" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">The lists of the remote repositories for discovering plugins</xs:documentation>
+          <xs:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="description">the description</xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="pluginRepository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
+            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
-      <xs:element name="dependencies" minOccurs="0">
+    </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 distributions 
+        produced by the build.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element name="repository" minOccurs="0" type="DeploymentRepository">
         <xs:annotation>
-          <xs:documentation source="version">3.0.0+</xs:documentation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            &lt;p&gt;
-              This element describes all of the dependencies associated with a
-              project.  Each dependency is described by a
-              &lt;code&gt;dependency&lt;/code&gt; element, which is then described by
-              additional elements (described below).
-            &lt;/p&gt;
-            &lt;p&gt;
-              These dependencies are used to construct a classpath for your 
-              project during the build process.
-            &lt;/p&gt;
-            &lt;p&gt;
-              Maven can automatically download these dependencies from a 
-              &lt;a href="/user-guide.html#Remote%20Repository%20Layout"&gt;remote repository&lt;/a&gt;.
-            &lt;/p&gt;
-            &lt;p&gt;
-              The filename that Maven downloads from the repository is 
-              &lt;code&gt;artifactId-version.jar&lt;/code&gt; where &lt;code&gt;artifactId&lt;/code&gt; 
-              corresponds to the &lt;code&gt;artifactId&lt;/code&gt; element and 
-              &lt;code&gt;version&lt;/code&gt; corresponds to the &lt;code&gt;version&lt;/code&gt; element.
-            &lt;/p&gt;
-            &lt;p&gt;
-              When Maven goes looking for a dependency in the remote repository, 
-              it uses the dependency element to construct the URL to download 
-              from. This URL is defined as:
-            &lt;/p&gt;
-            &lt;div class="source"&gt;
-              &lt;pre&gt;${repo}/${groupId}/${type}s/${artifactId}-${version}.${type}&lt;/pre&gt;
-            &lt;/div&gt;
-            &lt;p&gt;
-              Where
-            &lt;/p&gt;
-            &lt;dl&gt;
-              &lt;dt&gt;repo&lt;/dt&gt;
-              &lt;dd&gt;
-                is the remote repository URL specified by 
-                &lt;code&gt;${maven.repo.remote}&lt;/code&gt;
-              &lt;/dd&gt;
-              
-              &lt;dt&gt;groupId&lt;/dt&gt;
-              &lt;dd&gt;is taken from the dependency element&lt;/dd&gt;
-              
-              &lt;dt&gt;type&lt;/dt&gt;
-              &lt;dd&gt;is taken from the dependency element&lt;/dd&gt;
-              
-              &lt;dt&gt;artifactId&lt;/dt&gt;
-              &lt;dd&gt;is taken from the dependency element&lt;/dd&gt;
-              
-              &lt;dt&gt;version&lt;/dt&gt;
-              &lt;dd&gt;is taken from the dependency element&lt;/dd&gt;
-            &lt;/dl&gt;
+            Information needed for deploying to remote repository artifacts
+            generated by the project
           </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 name="reports" minOccurs="0" type="Reports">
+      <xs:element name="snapshotRepository" minOccurs="0" type="DeploymentRepository">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            This element includes the specification of reports to be
-            included in a Maven-generated site.  These reports will be run
-            when a user executes &lt;code&gt;maven site&lt;/code&gt;.  All of the
-            reports will be included in the navigation bar for browsing in
-            the order they are specified.
+            Where to deploy snapshots of artifacts to. If not given, it defaults to the repository.
           </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="dependencyManagement" minOccurs="0" type="DependencyManagement">
+      <xs:element name="site" minOccurs="0" type="Site">
         <xs:annotation>
           <xs:documentation source="version">4.0.0</xs:documentation>
           <xs:documentation source="description">
-            Default dependency information for grouped projects inheriting from 
-            this one. The dependency information here will not be checked.
-            Instead, when a POM derived from this one declares a dependency 
-            described by a groupId and an artifactId (version not necessary), 
-            the entries in here will supply default values for that dependency.
-            Any locally-supplied information for a particular dependency will
-            overwrite any information specified here for that project.
+            Information needed for deploying website files of the project.
           </xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="distributionManagement" minOccurs="0" type="DistributionManagement">
+      <xs:element name="downloadUrl" minOccurs="0" type="xs:string">
         <xs:annotation>
-          <xs:documentation source="version">4.0.0</xs:documentation>
-          <xs:documentation source="description">Distribution information for a project.</xs:documentation>
+          <xs:documentation source="version">4.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            The URL of the project's download page. If not given users will be referred to the homepage given by
+            &lt;code&gt;url&lt;/code&gt;.
+          </xs:documentation>
         </xs:annotation>
       </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 parent build profile.
-      </xs:documentation>
-    </xs:annotation>
-    <xs:all>
-      <xs:element name="jdk" minOccurs="0" type="xs:string">
+      <xs:element name="relocation" minOccurs="0" type="Relocation">
         <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.
-          </xs:documentation>
+          <xs:documentation source="description">Relocation information if the artifact has been moved to a new group/artifactId</xs:documentation>
         </xs:annotation>
       </xs:element>
-      <xs:element name="property" minOccurs="0" type="ActivationProperty">
+      <xs:element name="status" minOccurs="0" 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 this System property is specified.
+            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: none (default),
+            converted (repository manager converted this from an Maven 1 POM), partner (directly synced from a partner
+            Maven 2 repository), deployed (was deployed from a Maven 2 instance), verified (has been hand verified as
+            correct and final).
           </xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:all>
   </xs:complexType>
-  <xs:complexType name="ActivationProperty">
+  <xs:complexType name="Site">
+    <xs:annotation>
+      <xs:documentation source="version">4.0.0</xs:documentation>
+      <xs:documentation source="description">
+         Site contains the information needed
+         for deploying websites.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element name="id" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">
+            A unique identifier for a deployment locataion.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="name" minOccurs="0" 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 name="url" minOccurs="0" 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
+          </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 name="groupId" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">The group the artifact has moved to</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="artifactId" minOccurs="0" 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 name="version" minOccurs="0" 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 name="message" minOccurs="0" 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="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 repoistory
+      </xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element name="uniqueVersion" minOccurs="0" 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 name="id" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">
+            A unique identifier for a repository.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="name" minOccurs="0" 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 name="url" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">
+             The url of the repository
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="layout" minOccurs="0" 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 "legacy" or
+            "default".</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">
+        Repository contains the information needed for establishing connections with remote repoistory
+      </xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element name="releases" minOccurs="0" 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 name="snapshots" minOccurs="0" 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 name="id" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">
+            A unique identifier for a repository.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="name" minOccurs="0" 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 name="url" minOccurs="0" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0</xs:documentation>
+          <xs:documentation source="description">
+             The url of the repository
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="layout" minOccurs="0" 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 "legacy" or
+            "default".</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 name="enabled" minOccurs="0" type="xs:boolean" default="true">
+        <xs:annotation>

[... 690 lines stripped ...]