Added: maven/website/content/xsd/maven-4.1.0-rc-4.xsd
==============================================================================
--- maven/website/content/xsd/maven-4.1.0-rc-4.xsd (added)
+++ maven/website/content/xsd/maven-4.1.0-rc-4.xsd Thu Jun 26 06:39:33 2025
@@ -0,0 +1,2791 @@
+<?xml version="1.0"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one             -->
+<!-- or more contributor license agreements. See the NOTICE file            -->
+<!-- distributed with this work for additional information                  -->
+<!-- regarding copyright ownership. The ASF licenses this file              -->
+<!-- to you under the Apache License, Version 2.0 (the                      -->
+<!-- "License"); you may not use this file except in compliance             -->
+<!-- with the License. You may obtain a copy of the License at              -->
+<!--                                                                        -->
+<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
+<!--                                                                        -->
+<!-- Unless required by applicable law or agreed to in writing,             -->
+<!-- software distributed under the License is distributed on an            -->
+<!-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY                 -->
+<!-- KIND, either express or implied. See the License for the               -->
+<!-- specific language governing permissions and limitations                -->
+<!-- under the License.                                                     -->
+<!-- =================== DO NOT EDIT THIS FILE ====================         -->
+<!-- Generated by Modello 2.4.0,                                            -->
+<!-- any modifications will be overwritten.                                 -->
+<!-- ==============================================================         -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
elementFormDefault="qualified" xmlns="http://maven.apache.org/POM/4.1.0"; 
targetNamespace="http://maven.apache.org/POM/4.1.0";>
+  <xs:element name="project" type="Model">
+    <xs:annotation>
+      <xs:documentation source="version">3.0.0+</xs:documentation>
+      <xs:documentation source="description">
+        The {@code &lt;project&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 {@code &lt;project&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. {@code org.apache.maven}).
+          </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 {@code 
jar},
+              {@code war},
+              {@code ear},
+              {@code pom}.
+            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 website. 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 website,
+            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;p&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ path 
adjustment] + (artifactId or project.directory property), or just parent value 
if
+            project&apos;s {@code 
child.project.url.inherit.append.path=&quot;false&quot;}&lt;/p&gt;
+            
+          </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 the licenses for this project.
+            Each license is described by a {@code license} 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 type="License" name="license" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 type="Developer" name="developer" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 type="Contributor" name="contributor" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 type="MailingList" name="mailingList" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 =&gt; 
4.1.0]</xs:documentation>
+          <xs:documentation source="description">
+            @deprecated Use {@link #subprojects} instead.
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="xs:string" name="module" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="subprojects">
+        <xs:annotation>
+          <xs:documentation source="version">4.1.0</xs:documentation>
+          <xs:documentation source="description">The subprojects (formerly 
called modules) to build as a part of this
+            project. Each subproject listed is a relative path to the 
directory containing the subproject.
+            To be consistent with the way default URLs are calculated from 
parent, it is recommended
+            to have subproject names match artifact ids.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="xs:string" name="subproject" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 {@code &lt;name&gt;value&lt;/name&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 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;https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html&quot;&gt;Dependency
 mechanism&lt;/a&gt;
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="Dependency" name="dependency" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 type="Repository" name="repository" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 type="Repository" name="pluginRepository" 
minOccurs="0" maxOccurs="unbounded"/>
+          </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="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 {@code mvn site}.
+            All 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 type="Profile" name="profile" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="child.project.url.inherit.append.path" 
type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">4.0.0+</xs:documentation>
+        <xs:documentation source="description">
+            
+            When children inherit from project&apos;s url, append path or not? 
Note: While the type
+            of this field is {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}
+            &lt;p&gt;&lt;b&gt;Default value is&lt;/b&gt;: {@code 
true}&lt;/p&gt;
+            @since Maven 3.6.1
+            
+          </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="root" type="xs:boolean" default="false" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">4.1.0+</xs:documentation>
+        <xs:documentation source="description">
+            Indicates that this project is the root project, located in the 
upper directory of the source tree.
+            This is the directory which may contain the .mvn directory.
+
+            @since Maven 4.0.0
+          </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="preserve.model.version" type="xs:boolean" 
default="false" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">4.1.0+</xs:documentation>
+        <xs:documentation source="description">
+            Indicates if the build POM for this project should be preserved or 
downgraded to the lowest
+            compatible version.
+            @since Maven 4.0.0
+          </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </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 website, 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="CiManagement">
+    <xs:annotation>
+      <xs:documentation source="version">4.0.0+</xs:documentation>
+      <xs:documentation source="description">
+        
+        The {@code &lt;ciManagement&gt;} element contains information 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. {@code 
continuum}.
+          </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 type="Notifier" name="notifier" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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">
+            @deprecated 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="Scm">
+    <xs:annotation>
+      <xs:documentation source="version">4.0.0+</xs:documentation>
+      <xs:documentation source="description">
+        The {@code &lt;scm&gt;} element contains information 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.
+            This connection is read-only.
+            &lt;br&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ 
path adjustment] + (artifactId or project.directory property), or just parent 
value if
+            scm&apos;s {@code 
child.scm.connection.inherit.append.path=&quot;false&quot;}
+            @see &lt;a 
href=&quot;https://maven.apache.org/scm/scm-url-format.html&quot;&gt;URL 
format&lt;/a&gt;
+            @see &lt;a 
href=&quot;https://maven.apache.org/scm/scms-overview.html&quot;&gt;list of 
supported SCMs&lt;/a&gt;
+            
+          </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 {@code connection}, but for developers, i.e. this scm 
connection
+            will not be read only.
+            &lt;p&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ path 
adjustment] + (artifactId or project.directory property), or just parent value 
if
+            scm&apos;s {@code 
child.scm.developerConnection.inherit.append.path=&quot;false&quot;}.&lt;/p&gt;
+            
+          </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;p&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ path 
adjustment] + (artifactId or project.directory property), or just parent value 
if
+            scm&apos;s {@code 
child.scm.url.inherit.append.path=&quot;false&quot;}&lt;/p&gt;
+            
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="child.scm.connection.inherit.append.path" 
type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">4.0.0+</xs:documentation>
+        <xs:documentation source="description">
+            
+            When children inherit from scm connection, append path or not? 
Note: While the type
+            of this field is {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}
+            &lt;p&gt;&lt;b&gt;Default value is&lt;/b&gt;: {@code 
true}&lt;/p&gt;
+            @since Maven 3.6.1
+            
+          </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="child.scm.developerConnection.inherit.append.path" 
type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">4.0.0+</xs:documentation>
+        <xs:documentation source="description">
+            
+            When children inherit from scm developer connection, append path 
or not? Note: While the type
+            of this field is {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}
+            &lt;p&gt;&lt;b&gt;Default value is&lt;/b&gt;: {@code 
true}&lt;/p&gt;
+            @since Maven 3.6.1
+            
+          </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="child.scm.url.inherit.append.path" type="xs:string" 
use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">4.0.0+</xs:documentation>
+        <xs:documentation source="description">
+            
+            When children inherit from scm url, append path or not? Note: 
While the type
+            of this field is {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}
+            &lt;br&gt;&lt;b&gt;Default value is&lt;/b&gt;: {@code true}
+            @since Maven 3.6.1
+            
+          </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </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="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 type="Dependency" name="dependency" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 {@code &lt;dependency&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.
+            {@code org.apache.maven}.
+            
+          </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.
+            {@code maven-artifact}.
+          </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 requirement of the dependency, e.g. {@code 3.2.1}. The 
actual version will be resolved based on the usage context.
+            Version requirement can also be specified as a range of versions, 
e.g. {@code [3.2.0,)}. This is discouraged as it may break 
&lt;i&gt;predictability&lt;/i&gt; of resolved version.
+            See &lt;a 
href=&quot;https://s.apache.org/dependency-version&quot;&gt;dependency version 
requirement documentation&lt;/a&gt;
+            and &lt;a 
href=&quot;https://s.apache.org/transitive-dependencies-resolution&quot;&gt;transitive
 dependencies resolution&lt;/a&gt; for more details.
+            
+          </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, that will be mapped to a file extension, 
an optional classifier, and a few other attributes.
+            Some examples are {@code jar}, {@code war}, {@code ejb-client}
+            and {@code test-jar}: 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 extensions, 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;referring to attached artifact, for example {@code 
sources} and {@code javadoc}:
+            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, {@code jdk14} and {@code jdk15}.&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 - {@code compile}, {@code runtime},
+            {@code test}, {@code system}, and {@code provided}. 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;https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html&quot;&gt;the
+            dependency mechanism&lt;/a&gt;. The default scope is {@code 
compile}.
+            
+          </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. {@code ${java.home}}.
+            
+          </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 type="Exclusion" name="exclusion" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}. Default value is {@code false}.
+          </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 {@code &lt;exclusion&gt;} element contains information required to 
exclude
+        an artifact to the project.
+        &lt;p&gt;
+        The {@code groupId} and {@code artifactId} fields are interpreted as 
glob patterns.
+
+        @see java.nio.file.FileSystem#getPathMatcher
+        
+      </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 project 
to exclude.</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 
project to exclude.</xs:documentation>
+        </xs:annotation>
+      </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 {@code &lt;parent&gt;} element contains information required to 
locate the parent project from which
+        this project will inherit from.
+        &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The children of this 
element are not interpolated and must be given as literal values.&lt;/p&gt;
+        
+      </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">
+        <xs:annotation>
+          <xs:documentation source="version">4.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            The relative path of the parent subproject POM file or directory 
within the checkout.
+            If not specified, it defaults to {@code ..}, i.e. the parent 
directory.
+            Maven looks for the parent POM first in this location on
+            the filesystem if explicitly provided, then in the reactor if 
groupId and artifactId are provided,
+            then in the default parent directory, then the local repository, 
and lastly in the remote repo.
+            However, if the both relative path and the group ID / artifact ID 
are provided,
+            they must match the file in the location given.
+            Specify either the {@code relativePath} or the {@code 
groupId}/{@code artifactId}, not both.
+          </xs:documentation>
+        </xs:annotation>
+      </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
+            {@code role} 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 type="xs:string" name="role" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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="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
+            {@code mailto:} 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
+            {@code mailto:} 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
+            {@code mailto:} 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 type="xs:string" name="otherArchive" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </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
+            {@code role} 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 type="xs:string" name="role" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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="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
+            {@code repository} 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 {@code url}.
+            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 repository. Valid values are: {@code none} 
(default),
+            {@code converted} (repository manager converted this from a Maven 
1 POM),
+            {@code partner}
+            (directly synced from a partner Maven 2 repository), {@code 
deployed} (was deployed from a Maven 2
+            instance), {@code verified} (has been hand verified as correct and 
final).
+          </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">Deployment repository contains 
the information needed for deploying to the remote
+        repository, which adds uniqueVersion property to usual repositories 
for download.</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 {@code settings.xml} 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 {@code 
protocol://hostname/path}.
+          </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 {@code legacy} or {@code 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 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 {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}. Default value is {@code true}.
+          </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
+            {@code always},
+            {@code daily} (default),
+            {@code interval:XXX} (in minutes) or
+            {@code never} (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
+            {@code ignore},
+            {@code fail} (default for Maven 4 and above) or
+            {@code warn} (default for Maven 3).
+          </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 {@code settings.xml} 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 
{@code protocol://hostname/path}.
+            &lt;p&gt;&lt;b&gt;Default value is&lt;/b&gt;: parent value [+ path 
adjustment] + (artifactId or project.directory property), or just parent value 
if
+            site&apos;s {@code 
child.site.url.inherit.append.path=&quot;false&quot;}.&lt;/p&gt;
+            
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="child.site.url.inherit.append.path" type="xs:string" 
use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">4.0.0+</xs:documentation>
+        <xs:documentation source="description">
+            
+            When children inherit from distribution management site url, 
append path or not? Note: While the type
+            of this field is {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}
+            &lt;p&gt;&lt;b&gt;Default value is&lt;/b&gt;: {@code 
true}&lt;/p&gt;
+            @since Maven 3.6.1
+            
+          </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </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 {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}. Default value is {@code false}.
+          </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 the generated reports. The default is
+            {@code ${project.build.directory}/site}.
+          </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 type="ReportPlugin" name="plugin" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 {@code &lt;plugin&gt;} element in {@code 
&lt;reporting&gt;&lt;plugins&gt;} contains information 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. Starting with 
Maven 3, if no version is defined explicitly,
+            version is searched in {@code build/plugins} then in {@code 
build/pluginManagement}.
+          </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 {@code 
execution} in the build.
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="ReportSet" name="reportSet" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}. Default value is {@code true}.
+          </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
+            {@code xml:space=&quot;preserve&quot;} 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 {@code combine.children}
+            or {@code combine.self} attributes to the children of the 
configuration element:&lt;/p&gt;
+            &lt;ul&gt;
+            &lt;li&gt;{@code combine.children}: available values are {@code 
merge} (default) and {@code append},&lt;/li&gt;
+            &lt;li&gt;{@code combine.self}: available values are {@code merge} 
(default) and {@code override}.&lt;/li&gt;
+            &lt;/ul&gt;
+
+            @see &lt;a 
href=&quot;https://maven.apache.org/pom.html#Plugins&quot;&gt;POM Reference 
documentation&lt;/a&gt;
+            @see &lt;a 
href=&quot;https://codehaus-plexus.github.io/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html&quot;&gt;Xpp3DomUtils&lt;/a&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 type="xs:string" name="report" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 {@code String} for technical reasons, the 
semantic type is actually
+            {@code Boolean}. Default value is {@code true}.
+          </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
+            {@code xml:space=&quot;preserve&quot;} 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 {@code combine.children}
+            or {@code combine.self} attributes to the children of the 
configuration element:&lt;/p&gt;
+            &lt;ul&gt;
+            &lt;li&gt;{@code combine.children}: available values are {@code 
merge} (default) and {@code append},&lt;/li&gt;
+            &lt;li&gt;{@code combine.self}: available values are {@code merge} 
(default) and {@code override}.&lt;/li&gt;
+            &lt;/ul&gt;
+
+            @see &lt;a 
href=&quot;https://maven.apache.org/pom.html#Plugins&quot;&gt;POM Reference 
documentation&lt;/a&gt;
+            @see &lt;a 
href=&quot;https://codehaus-plexus.github.io/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html&quot;&gt;Xpp3DomUtils&lt;/a&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="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 =&gt; 
4.1.0]</xs:documentation>
+          <xs:documentation source="description">
+            @deprecated Use {@link #subprojects} instead.
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="xs:string" name="module" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="subprojects">
+        <xs:annotation>
+          <xs:documentation source="version">4.1.0</xs:documentation>
+          <xs:documentation source="description">The subprojects (formerly 
called modules) to build as a part of this
+            project. Each subproject listed is a relative path to the 
directory containing the subproject.
+            To be consistent with the way default URLs are calculated from 
parent, it is recommended
+            to have subproject names match artifact ids.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="xs:string" name="subproject" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 {@code &lt;name&gt;value&lt;/name&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 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;https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html&quot;&gt;Dependency
 mechanism&lt;/a&gt;
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="Dependency" name="dependency" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 type="Repository" name="repository" minOccurs="0" 
maxOccurs="unbounded"/>
+          </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 type="Repository" name="pluginRepository" 
minOccurs="0" maxOccurs="unbounded"/>
+          </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 {@code mvn site}.
+            All the reports will be included in the navigation bar for 
browsing.
+          </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 build profile. Multiple conditions can 
be defined, which must
+            be all satisfied to activate the profile.
+
+            &lt;p&gt;In addition to the traditional activation mechanisms (JDK 
version, OS properties,
+            file existence, etc.), Maven now supports a powerful 
condition-based activation
+            through the {@code condition} field. This new mechanism allows for 
more flexible
+            and expressive profile activation rules.&lt;/p&gt;
+
+            &lt;h2&gt;Condition Syntax&lt;/h2&gt;
+
+            &lt;p&gt;The condition is specified as a string expression that 
can include various
+            functions, comparisons, and logical operators. Some key features 
include:&lt;/p&gt;
+
+            &lt;ul&gt;
+            &lt;li&gt;Property access: {@code ${property.name}}&lt;/li&gt;
+            &lt;li&gt;Comparison operators: {@code ==}, {@code !=}, {@code 
&lt;}, {@code &gt;}, {@code &lt;=}, {@code &gt;=}&lt;/li&gt;
+            &lt;li&gt;Logical operators: {@code &amp;&amp;} (AND), {@code ||} 
(OR), {@code not(...)}&lt;/li&gt;
+            &lt;li&gt;Functions: {@code exists(...)}, {@code missing(...)}, 
{@code matches(...)}, {@code inrange(...)}, and more&lt;/li&gt;
+            &lt;/ul&gt;
+

[... 1070 lines stripped ...]


Reply via email to