<?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.5.1,                                            -->
<!-- any modifications will be overwritten.                                 -->
<!-- ==============================================================         -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/PLUGIN-METADATA/1.1.0" targetNamespace="http://maven.apache.org/PLUGIN-METADATA/1.1.0">
  <xs:element name="pluginMetadata" type="PluginMetadata">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">Root element of a script-based mojo&apos;s plugin metadata bindings.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="PluginMetadata">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">Root element of a script-based mojo&apos;s plugin metadata bindings.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="mojos">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The list of mojos contained in the accompanying script.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="Mojo" name="mojo" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Mojo">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">Mojo descriptor definition.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="goal" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The name of the goal used to invoke this mojo.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="phase" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The phase to which this mojo should be bound by default.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="aggregator" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Whether this mojo operates as an aggregator when the reactor is run. That is, only runs once.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="requiresDependencyResolution" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The scope of dependencies that this mojo requires to have resolved.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="requiresProject" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Whether this mojo requires a project instance in order to execute.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="requiresReports" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Whether this mojo requires a reports section in the POM.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="requiresOnline" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Whether this mojo requires online mode to operate normally.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="inheritByDefault" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Whether this mojo&apos;s configuration should propagate down the POM inheritance chain by default.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="requiresDirectInvocation" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">If true, this mojo can only be directly invoked (eg. specified directly on the command line).
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="execution" type="LifecycleExecution">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Information about a sub-execution of the Maven lifecycle which should be processed.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="components">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">List of plexus components required by this mojo.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="Component" name="component" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="parameters">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">List of parameters used by this mojo.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="Parameter" name="parameter" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="description" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The description for this parameter.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="deprecated" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">A deprecation message for this mojo parameter.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="since" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">Version when the mojo was added to the API.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="call" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The target/method within the script to call when this mojo executes.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Parameter">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        A parameter used by a mojo, and configurable from the command line or POM configuration sections.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The parameter name</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="alias" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">An alternate name for the parameter.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="property" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The JavaBeans property name to use to configure the mojo with this parameter.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="required" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Whether this parameter is required.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="readonly" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Whether this parameter can be directly edited. If false, this param is either derived from another POM element, or refers to a runtime instance of the build system.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="expression" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            The command-line reference to this parameter.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="defaultValue" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            An expression in the form ${instance.property} for extracting a value for this parameter, especially from
            a runtime instance within the build system. (eg. ${project.build.directory} references
            project.getBuild().getDirectory())
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="type" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            The java type for this parameter.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="description" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The description for this parameter.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="deprecated" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">A deprecation message for this mojo parameter.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="since" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">Version when the parameter was added.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Component">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        A reference to a plexus component, assumed to be available to the plugin container.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="role" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The component role to lookup.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="hint" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The role-hint to lookup.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="LifecycleExecution">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        A sub-process execution of a lifecycle to satisfy the needs of a mojo.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="lifecycle" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The name of the overlay to apply to the sub-lifecycle before executing it. If specified, this
            lifecycle overlay definition will be bundled with the plugin.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="phase" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The phase in the sub-lifecycle.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="goal" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">A goal, not attached to a lifecycle phase, which should be executed ahead of this mojo.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
</xs:schema>