<?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/LIFECYCLE/2.0.0" targetNamespace="http://maven.apache.org/LIFECYCLE/2.0.0">
  <xs:element name="lifecycles" type="LifecycleConfiguration">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">Root element of the {@code lifecycle.xml} file.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="LifecycleConfiguration">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">Root element of the {@code lifecycle.xml} file.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" name="lifecycle" type="Lifecycle" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Lifecycle">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">A custom lifecycle mapping definition.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="id" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The ID of this lifecycle, for identification in the mojo descriptor.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="phases">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The phase mappings for this lifecycle.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="Phase" name="phase" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Phase">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">A phase mapping definition.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="id" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The ID of this phase, e.g., {@code generate-sources}.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="executions">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The goals to execute within the phase.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="Execution" name="execution" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="configuration">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Configuration to pass to all goals run in this phase.</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:attribute name="executionPoint" type="xs:string" default="" use="optional">
      <xs:annotation>
        <xs:documentation source="version">2.0.0+</xs:documentation>
        <xs:documentation source="description">If specified, identifies this phase as a dynamic phase to decorate the specified phase id, e.g. {@code after} or {@code before}.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="priority" type="xs:int" default="0" use="optional">
      <xs:annotation>
        <xs:documentation source="version">2.0.0+</xs:documentation>
        <xs:documentation source="description">If specified, identifies a within phase prioritization of executions.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="Execution">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">A set of goals to execute.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="configuration">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Configuration to pass to the goals.</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="goals">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The goals to execute.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="xs:string" name="goal" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
</xs:schema>