<!--
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.
-->

<model xmlns="http://codehaus-plexus.github.io/MODELLO/1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://codehaus-plexus.github.io/MODELLO/1.4.0 http://codehaus-plexus.github.io/modello/xsd/modello-1.4.0.xsd"
       xml.namespace="http://maven.apache.org/BUILD-CACHE-CONFIG/${version}"
       xml.schemaLocation="https://maven.apache.org/xsd/build-cache-config-${version}.xsd">
    <id>build-cache-config</id>
    <name>BuildCacheConfig</name>
    <description><![CDATA[Maven Incremental Build and Cache configuration, stored in <code>.mvn/maven-cache-config.xml</code>
  ]]></description>

    <defaults>
        <default>
            <key>package</key>
            <value>org.apache.maven.buildcache.xml.config</value>
        </default>
    </defaults>

    <classes>

        <class rootElement="true" xml.tagName="cache">
            <name>CacheConfig</name>
            <fields>
                <field>
                    <name>configuration</name>
                    <association>
                        <type>Configuration</type>
                    </association>
                    <description>Configuration of main cache properties</description>
                </field>
                <field>
                    <name>input</name>
                    <association>
                        <type>Input</type>
                    </association>
                    <description>Configuration for source code input files participating in checksum calculation</description>
                </field>
                <field>
                    <name>output</name>
                    <association>
                        <type>Output</type>
                    </association>
                    <description>Configuration for output artifacts, it's needed if you want to explicitly include/exclude something from caching</description>
                </field>
                <field>
                    <name>executionControl</name>
                    <association>
                        <type>ExecutionControl</type>
                    </association>
                    <description>Execution rules for plugins in cached mode. Defines which plugins should run always</description>
                </field>
            </fields>
            <description>Cache build metadata</description>
        </class>

        <class>
            <name>Remote</name>
            <fields>
                <field>
                    <name>url</name>
                    <type>String</type>
                    <description>Address of remote cache</description>
                </field>
                <field xml.attribute="true">
                    <name>enabled</name>
                    <type>boolean</type>
                    <defaultValue>true</defaultValue>
                </field>
                <field xml.attribute="true">
                    <name>saveToRemote</name>
                    <type>boolean</type>
                    <defaultValue>false</defaultValue>
                    <description>Save output to remote cache. Recommended to enable on CI agents only.</description>
                </field>
                <field xml.attribute="true">
                    <name>transport</name>
                    <type>String</type>
                    <defaultValue>http</defaultValue>
                    <description>The transport to use, either 'http' or 'wagon'.</description>
                </field>
                <field xml.attribute="true">
                    <name>id</name>
                    <type>String</type>
                    <defaultValue>cache</defaultValue>
                    <description>The repository id used to find authentication / mirror information in maven settings, default to 'cache'.</description>
                </field>
            </fields>
        </class>

        <!--

    <xs:complexType name="Configuration">
        <xs:annotation>
          <xs:documentation source="version">0.0.0+</xs:documentation>
        </xs:annotation>
        <xs:all>
          <xs:element minOccurs="0" name="enabled" type="xs:boolean" default="true">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="hashAlgorithm" type="xs:string" default="XX">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
              <xs:documentation source="description">One of XX, XXMM, SHA-1, SHA-256, SHA-384, SHA-512</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="validateXml" type="xs:boolean" default="false">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
              <xs:documentation source="description">Validate cache config and builds metadata against xsd.
                TODO: not implemented
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="multiModule" type="MultiModule">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
              <xs:documentation source="description">Specifies related to multi module projects configuration.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="projectVersioning" type="ProjectVersioning">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
              <xs:documentation source="description">Specifies parameters to handle project version changes.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="remote" type="Remote">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="attachedOutputs" type="AttachedOutputs">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="local" type="Local">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="debugs">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
              <xs:documentation source="description">FileHash (causes file hash is saved in build metadata) or
                EffectivePom (causes effective pom info is saved in build metadata)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="debug" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:all>
      </xs:complexType>
          -->
        <class>
            <name>Configuration</name>
            <fields>
                <field>
                    <name>enabled</name>
                    <type>boolean</type>
                    <defaultValue>true</defaultValue>
                </field>
                <field>
                    <name>hashAlgorithm</name>
                    <type>String</type>
                    <defaultValue>XX</defaultValue>
                    <description>One of XX, XXMM, SHA-1, SHA-256, SHA-384, SHA-512</description>
                </field>
                <field>
                    <name>validateXml</name>
                    <type>boolean</type>
                    <defaultValue>false</defaultValue>
                    <description>Validate cache config and builds metadata against xsd.
                        TODO: not implemented
                    </description>
                </field>
                <field>
                    <name>multiModule</name>
                    <association>
                        <type>MultiModule</type>
                    </association>
                    <description>Specifies related to multi module projects configuration.</description>
                </field>
                <field>
                    <name>projectVersioning</name>
                    <association>
                        <type>ProjectVersioning</type>
                    </association>
                    <description>Specifies parameters to handle project version changes.</description>
                </field>
                <field>
                    <name>remote</name>
                    <association>
                        <type>Remote</type>
                    </association>
                </field>
                <field>
                    <name>attachedOutputs</name>
                    <association>
                        <type>AttachedOutputs</type>
                    </association>
                </field>
                <field>
                    <name>local</name>
                    <association>
                        <type>Local</type>
                    </association>
                </field>
                <field>
                    <name>debugs</name>
                    <association>
                        <type>String</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>FileHash (causes file hash is saved in build metadata) or
                        EffectivePom (causes effective pom info is saved in build metadata)</description>
                </field>
            </fields>
        </class>

        <!--
        <xs:complexType>
            <xs:choice>
                <xs:element name="specificVersion" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>
                            Any project dependency this this version will be considered cache eligible and will
                            be processed cache aware
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:complexType>
        -->

        <class>
            <name>MultiModule</name>
            <fields>
                <field>
                    <name>discovery</name>
                    <association>
                        <type>Discovery</type>
                    </association>
                    <description>Section to specify how to discover multi module projects.</description>
                </field>
            </fields>
        </class>

        <!--
        <xs:complexType name="MultiModule">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
            </xs:annotation>
            <xs:all>
              <xs:element minOccurs="0" name="discovery" type="Discovery">
                <xs:annotation>
                  <xs:documentation source="version">0.0.0+</xs:documentation>
                  <xs:documentation source="description">Section to specify how to discover multi module projects.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:all>
        </xs:complexType>
        -->

         <class>
            <name>Discovery</name>
            <fields>
                <field>
                    <name>scanProfiles</name>
                    <association>
                        <type>String</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Profiles to discover multi module project</description>
                </field>
            </fields>
        </class>

        <!--
        <xs:complexType name="Discovery">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
            </xs:annotation>
            <xs:all>
              <xs:element minOccurs="0" name="scanProfiles">
                <xs:annotation>
                  <xs:documentation source="version">0.0.0+</xs:documentation>
                  <xs:documentation source="description">Profiles to discover multi module project</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="scanProfile" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:all>
        </xs:complexType>
        -->

        <class>
            <name>ProjectVersioning</name>
            <fields>
                <field xml.attribute="true">
                    <name>adjustMetaInf</name>
                    <type>boolean</type>
                    <description>Determines whether version in metadata must be changed according to building project version.</description>
                </field>
            </fields>
        </class>

        <!--
          <xs:complexType name="ProjectVersioning">
            <xs:annotation>
              <xs:documentation source="version">0.0.0+</xs:documentation>
            </xs:annotation>
            <xs:attribute name="adjustMetaInf" type="xs:boolean" default="false" use="optional">
              <xs:annotation>
                <xs:documentation source="version">0.0.0+</xs:documentation>
                <xs:documentation source="description">Determines whether version in metadata must be changed according to building project version.</xs:documentation>
              </xs:annotation>
            </xs:attribute>
          </xs:complexType>
       -->

        <!--
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="dirName" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>
                                        Directory name in build output directory to attach to cached artifacts
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
          -->
        <class>
            <name>AttachedOutputs</name>
            <fields>
                <field>
                    <name>dirNames</name>
                    <association>
                        <type>String</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Directory name in build output directory to attach to cached artifacts</description>
                </field>
            </fields>
        </class>

        <!--
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="maxBuildsCached" type="xs:positiveInteger" default="3">
                                <xs:annotation>
                                    <xs:documentation>
                                        Maximum number of cached build per artifact in local cache. First created cache (the
                                        oldest) is
                                        evicted if breached.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
          -->
        <class>
            <name>Local</name>
            <fields>
                <field>
                    <name>maxBuildsCached</name>
                    <type>int</type>
                    <defaultValue>3</defaultValue>
                    <description>Maximum number of cached build per artifact in local cache. First created cache (the
                        oldest) is evicted if breached.</description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="InputType">
        <xs:sequence>
            <xs:element name="global" type="c:PathSetType" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Global input calculation rules applicable to all projects and plugins in the build
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="plugin" type="c:PluginConfigurationScanType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Plugin specific input calculation rules
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
          -->
        <class>
            <name>Input</name>
            <fields>
                <field>
                    <name>global</name>
                    <association>
                        <type>PathSet</type>
                    </association>
                    <description>Global input calculation rules applicable to all projects and plugins in the build</description>
                </field>
                <field>
                    <name>plugins</name>
                    <association>
                        <type>PluginConfigurationScan</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Plugin specific input calculation rules</description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="PluginConfigurationScanType">
        <xs:complexContent>
            <xs:extension base="c:CoordinatesBaseType">
                <xs:sequence>
                    <xs:element name="effectivePom" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>
                                Effective pom calculation rules
                            </xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="excludeProperty" type="xs:string" maxOccurs="unbounded">
                                    <xs:annotation>
                                        <xs:documentation>
                                            Plugin configuration property should be excluded from effective pom
                                            calculation
                                        </xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="dirScan" type="c:DirScanConfigType" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies plugin level rules of configuration processing in search of referenced source
                                files
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="execution" type="c:ExecutionConfigurationScanType" minOccurs="0"
                                maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies execution specific configuration processing in search of referenced source
                                files
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
          -->
        <class>
            <name>PluginConfigurationScan</name>
            <superClass>CoordinatesBase</superClass>
            <fields>
                <field>
                    <name>effectivePom</name>
                    <association>
                        <type>EffectivePom</type>
                    </association>
                    <description>Effective pom calculation rules</description>
                </field>
                <field>
                    <name>dirScan</name>
                    <association>
                        <type>DirScanConfig</type>
                    </association>
                    <description>Specifies plugin level rules of configuration processing in search of referenced source files</description>
                </field>
                <field>
                    <name>executions</name>
                    <association>
                        <type>ExecutionConfigurationScan</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Specifies execution specific configuration processing in search of referenced source files</description>
                </field>
            </fields>
        </class>

        <!--
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="excludeProperty" type="xs:string" maxOccurs="unbounded">
                                    <xs:annotation>
                                        <xs:documentation>
                                            Plugin configuration property should be excluded from effective pom
                                            calculation
                                        </xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:complexType>
          -->
        <class>
            <name>EffectivePom</name>
            <fields>
                <field>
                    <name>excludeProperties</name>
                    <association>
                        <type>String</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Plugin configuration property should be excluded from effective pom calculation</description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="ExecutionConfigurationScanType">
        <xs:sequence>
            <xs:element name="execId" maxOccurs="unbounded"/>
            <xs:element name="dirScan" type="c:DirScanConfigType">
                <xs:annotation>
                    <xs:documentation>
                        Specifies rules of configuration processing in search of referenced source files
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="ignoreParentConfig" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>
                    ignore parent config or inherit/merge
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
          -->
        <class>
            <name>ExecutionConfigurationScan</name>
            <fields>
                <field>
                    <name>execIds</name>
                    <association>
                        <type>String</type>
                        <multiplicity>*</multiplicity>
                    </association>
                </field>
                <field>
                    <name>dirScan</name>
                    <association>
                        <type>DirScanConfig</type>
                    </association>
                    <description>Specifies rules of configuration processing in search of referenced source files</description>
                </field>
                <field xml.attribute="true">
                    <name>ignoreParentConfig</name>
                    <type>boolean</type>
                    <description>ignore parent config or inherit/merge</description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="TagScanConfigType">
        <xs:simpleContent>
            <xs:extension base="c:TagNameType">
                <xs:attributeGroup ref="c:pathScanAttrGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
          -->
        <class>
            <name>TagScanConfig</name>
            <superClass>TagExclude</superClass>
            <fields>
                <field xml.attribute="true">
                    <name>recursive</name>
                    <type>boolean</type>
                    <defaultValue>true</defaultValue>
                </field>
                <field xml.attribute="true">
                    <name>glob</name>
                    <type>String</type>
                    <defaultValue>*</defaultValue>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="DirScanConfigType">
        <xs:choice>
            <xs:element name="include" maxOccurs="unbounded" type="c:TagScanConfigType">
                <xs:annotation>
                    <xs:documentation>
                        Forces cache to treat property value as input and include in calculation. If set, only included
                        properties will be takein in calculation (whitelist)
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:sequence>
                <xs:element name="exclude" type="c:TagNameType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>
                            Tag to exclude when scanning plugin configuration for input files (blacklist)
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="tagScanConfig" type="c:TagScanConfigType" minOccurs="0"
                            maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>
                            Additional processing rules for non-blacklisted tags
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:choice>

        <xs:attribute name="ignoreParent" type="xs:boolean" default="false">
            <xs:annotation>
                <xs:documentation>
                    Ignore parent settings or inherit and merge
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <xs:attribute name="mode">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="auto">
                        <xs:annotation>
                            <xs:documentation>
                                Scan directory accordingly to cache implementation
                            </xs:documentation>
                        </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="skip">
                        <xs:annotation>
                            <xs:documentation>
                                Skip directory
                            </xs:documentation>
                        </xs:annotation>
                    </xs:enumeration>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
          -->
        <class>
            <name>DirScanConfig</name>
            <fields>
                <field>
                    <name>includes</name>
                    <association>
                        <type>TagScanConfig</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Forces cache to treat property value as input and include in calculation. If set, only included
                        properties will be takein in calculation (whitelist)</description>
                </field>
                <field>
                    <name>excludes</name>
                    <association>
                        <type>TagExclude</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Tag to exclude when scanning plugin configuration for input files (blacklist)</description>
                </field>
                <field>
                    <name>tagScanConfigs</name>
                    <association>
                        <type>TagScanConfig</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Additional processing rules for non-blacklisted tags</description>
                </field>
                <field xml.attribute="true">
                    <name>ignoreParent</name>
                    <type>boolean</type>
                    <defaultValue>false</defaultValue>
                    <description>Ignore parent settings or inherit and merge</description>
                </field>
                <field xml.attribute="true">
                    <name>mode</name>
                    <type>String</type>
                    <description>
                        Either 'auto' (scan directory accordingly to cache implementation) or 'skip' (skip directory).
                    </description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="OutputType">
        <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        Patterns to exclude output artifacts applicable to all projects in the build
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="pattern" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
          -->
        <class>
            <name>Output</name>
            <fields>
                <field>
                    <name>exclude</name>
                    <association>
                        <type>OutputExclude</type>
                    </association>
                    <description>Patterns to exclude output artifacts applicable to all projects in the build</description>
                </field>
            </fields>
        </class>

        <class>
            <name>OutputExclude</name>
            <fields>
                <field>
                    <name>patterns</name>
                    <association>
                        <type>String</type>
                        <multiplicity>*</multiplicity>
                    </association>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="PathSetType">
        <xs:sequence>
            <xs:element name="glob" type="xs:string" minOccurs="0" default="*"/>
            <xs:element name="include" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attributeGroup ref="c:pathScanAttrGroup"/>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="exclude" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
          -->
        <class>
            <name>PathSet</name>
            <fields>
                <field>
                    <name>glob</name>
                    <type>String</type>
                    <defaultValue>*</defaultValue>
                </field>
                <field>
                    <name>includes</name>
                    <association>
                        <type>Include</type>
                        <multiplicity>*</multiplicity>
                    </association>
                </field>
                <field>
                    <name>excludes</name>
                    <association>
                        <type>Exclude</type>
                        <multiplicity>*</multiplicity>
                    </association>
                </field>
            </fields>
        </class>
        <class>
            <name>Exclude</name>
            <fields>
                <field xml.content="true">
                    <name>value</name>
                    <type>String</type>
                </field>
            </fields>
        </class>
        <class>
            <name>Include</name>
            <fields>
                <field xml.content="true">
                    <name>value</name>
                    <type>String</type>
                </field>
                <field xml.attribute="true">
                    <name>recursive</name>
                    <type>boolean</type>
                    <defaultValue>true</defaultValue>
                </field>
                <field xml.attribute="true">
                    <name>glob</name>
                    <type>String</type>
                </field>
            </fields>
        </class>

        <!--
        <xx xs:complexType name="ReconciliationType">
            <xs:sequence>
                <xs:element name="plugin" type="c:GoalsReconciliationType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>
                            Plugin specific reconciliation rules between cached build and running one
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType xx>
        -->

        <!--
    <xs:complexType name="GoalReconciliationType">
        <xs:complexContent>
            <xs:extension base="c:GoalIdType">
                <xs:sequence>
                    <xs:element name="reconcile" type="c:TrackedPropertyType" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>
                                Specify property which should be reconciled against running build
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="log" type="c:PropertyNameType" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>
                                Specify property which should be logged to build metadata for exploration
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="nolog" type="c:PropertyNameType" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>
                                Specify property which should not be logged
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
                <xs:attribute name="logAll" type="xs:boolean" default="true">
                    <xs:annotation>
                        <xs:documentation>
                            Controls if all plugin properties to be logged (true is default). All the properties logged
                            with respect to log/nolog children:
                            * true: logged all if no blacklists (<nolog/>) and whitelists (<log/>) specified on plugin
                            level
                            * false: logged only tracked and included by whitelists (<log/>) on plugin level
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    -->

        <class>
            <name>GoalReconciliation</name>
            <superClass>GoalId</superClass>
            <fields>
                <field>
                    <name>reconciles</name>
                    <association>
                        <type>TrackedProperty</type>
                        <multiplicity>*</multiplicity>
                    </association>
                </field>
                <field>
                    <name>logs</name>
                    <association>
                        <type>PropertyName</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Specify property which should be logged to build metadata for exploration</description>
                </field>
                <field>
                    <name>nologs</name>
                    <association>
                        <type>PropertyName</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Specify property which should not be logged</description>
                </field>
                <field>
                    <name>logAll</name>
                    <type>boolean</type>
                    <defaultValue>true</defaultValue>
                    <description><![CDATA[Controls if all plugin properties to be logged (true is default). All the properties logged
                        with respect to log/nolog children:
                        * true: logged all if no blacklists (&lt;nolog/&gt;) and whitelists (&lt;log/&gt;) specified on plugin
                        level
                        * false: logged only tracked and included by whitelists (&lt;log/&gt;) on plugin level]]>
                    </description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="ExecutionControlType">
        <xs:all>
            <xs:element name="runAlways" type="c:ExecutablesType" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Specify which plugin should run always if present in build regardless of cached status
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ignoreMissing" type="c:ExecutablesType" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Specify which executions/plugins/goals do not affect generated artifacts and do not affect build correctness.
                        If cached build lacks of ignorable executions only, it still could be reused.
                        Typically case is then cached build is produced with 'verify' and you locally you run 'install'.
                        Strictly speaking these are different builds but in most of cases you want this difference to be ignored
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="reconcile" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Specify which plugin should run always if present in build regardless of cached status
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="plugin" type="c:GoalReconciliationType" maxOccurs="unbounded">
                            <xs:annotation>
                                <xs:documentation>
                                    Reconciliation rules for plugin properties which might be affected by command line
                                    flags, etc
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="logAllProperties" type="xs:boolean" default="true">
                        <xs:annotation>
                            <xs:documentation>
                                Controls if all plugin properties to be logged (true is default). All the properties
                                logged with respect to children:
                                * logAll on plugin level overrides global value
                                * true: logged all if no blacklists (<nolog/>) and whitelists (<log/>) specified on
                                plugin level
                                * false: logged only tracked and included by whitelists (<log/>) on plugin level
                                <log/>
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
        </xs:all>
    </xs:complexType>
    -->

        <class>
            <name>ExecutionControl</name>
            <fields>
                <field>
                    <name>runAlways</name>
                    <association>
                        <type>Executables</type>
                    </association>
                    <description>Specify which plugin should run always if present in build regardless of cached status</description>
                </field>
                <field>
                    <name>ignoreMissing</name>
                    <association>
                        <type>Executables</type>
                    </association>
                    <description>
                        Specify which executions/plugins/goals do not affect generated artifacts and do not affect build correctness.
                        If cached build lacks of ignorable executions only, it still could be reused.
                        Typically case is then cached build is produced with 'verify' and you locally you run 'install'.
                        Strictly speaking these are different builds but in most of cases you want this difference to be ignored
                    </description>
                </field>
                <field>
                    <name>reconcile</name>
                    <association>
                        <type>Reconcile</type>
                    </association>
                    <description>Specify which plugin should run always if present in build regardless of cached status</description>

                </field>
            </fields>
        </class>

        <!--
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="plugin" type="c:GoalReconciliationType" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>
                                        Reconciliation rules for plugin properties which might be affected by command line
                                        flags, etc
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="logAllProperties" type="xs:boolean" default="true">
                            <xs:annotation>
                                <xs:documentation>
                                    Controls if all plugin properties to be logged (true is default). All the properties
                                    logged with respect to children:
                                    * logAll on plugin level overrides global value
                                    * true: logged all if no blacklists (<nolog/>) and whitelists (<log/>) specified on
                                    plugin level
                                    * false: logged only tracked and included by whitelists (<log/>) on plugin level
                                    <log/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:complexType>
          -->
        <class>
            <name>Reconcile</name>
            <fields>
                <field>
                    <name>plugins</name>
                    <association>
                        <type>GoalReconciliation</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Reconciliation rules for plugin properties which might be affected by command line flags, etc</description>
                </field>
                <field xml.attribute="true">
                    <name>logAllProperties</name>
                    <type>boolean</type>
                    <defaultValue>true</defaultValue>
                    <description><![CDATA[
                        Controls if all plugin properties to be logged (true is default). All the properties
                        logged with respect to children:
                        * logAll on plugin level overrides global value
                        * true: logged all if no blacklists (&lt;nolog/&gt;) and whitelists (&lt;log/&gt;) specified on
                        plugin level
                        * false: logged only tracked and included by whitelists (&lt;log/&gt;) on plugin level
                        &lt;log/&gt;]]>
                    </description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="ExecutablesType">
        <xs:sequence>
            <xs:element name="plugin" type="c:PluginSetType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Specify which plugin should run always if present in build regardless of cached status
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="execution" type="c:ExecutionIdsListType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Specify which executions should run always if present in build regardless of cached status
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="goals" type="c:GoalsListType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Specify which goals should run always if present in build regardless of cached status
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    -->

        <class>
            <name>Executables</name>
            <fields>
                <field>
                    <name>plugins</name>
                    <association>
                        <type>PluginSet</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Specify which executions should run always if present in build regardless of cached status</description>
                </field>
                <field>
                    <name>executions</name>
                    <association>
                        <type>ExecutionIdsList</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Specify which executions should run always if present in build regardless of cached status</description>
                </field>
                <field>
                    <name>goalsLists</name>
                    <association>
                        <type>GoalsList</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Specify which goals should run always if present in build regardless of cached status</description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="GoalsListType">
        <xs:complexContent>
            <xs:extension base="c:CoordinatesBaseType">
                <xs:sequence>
                    <xs:element name="goal" type="xs:string" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>
                                Goals identification
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    -->

        <class>
            <name>GoalsList</name>
            <superClass>CoordinatesBase</superClass>
            <fields>
                <field>
                    <name>goals</name>
                    <association>
                        <type>String</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Goals identification</description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="GoalIdType">
        <xs:complexContent>
            <xs:extension base="c:CoordinatesBaseType">
                <xs:attribute name="goal" type="xs:string" use="required"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    -->

        <class>
            <name>GoalId</name>
            <superClass>CoordinatesBase</superClass>
            <fields>
                <field xml.attribute="true">
                    <name>goal</name>
                    <type>String</type>
                    <required>true</required>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="ExecutionIdsListType">
        <xs:complexContent>
            <xs:extension base="c:CoordinatesBaseType">
                <xs:sequence>
                    <xs:element name="execId" type="xs:string" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>
                                Executions ids list with plugin identifier
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    -->

        <class>
            <name>ExecutionIdsList</name>
            <superClass>CoordinatesBase</superClass>
            <fields>
                <field>
                    <name>execIds</name>
                    <association>
                        <type>String</type>
                        <multiplicity>*</multiplicity>
                    </association>
                    <description>Executions ids list with plugin identifier</description>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="PluginSetType">
        <xs:complexContent>
            <xs:extension base="c:CoordinatesBaseType"/>
        </xs:complexContent>
    </xs:complexType>
    -->

        <class>
            <name>PluginSet</name>
            <superClass>CoordinatesBase</superClass>
        </class>

        <!--
    <xs:complexType name="CoordinatesBaseType">
        <xs:attribute name="groupId" type="xs:string"/>
        <xs:attribute name="artifactId" type="xs:string" use="required"/>
    </xs:complexType>
    -->

        <class>
            <name>CoordinatesBase</name>
            <fields>
                <field xml.attribute="true">
                    <name>groupId</name>
                    <type>String</type>
                </field>
                <field xml.attribute="true">
                    <name>artifactId</name>
                    <type>String</type>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="TagNameType">
        <xs:simpleContent>
            <xs:extension base="c:EmptyString">
                <xs:attribute name="tagName" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    -->

        <class>
            <name>TagExclude</name>
            <fields>
                <field xml.attribute="true">
                    <name>tagName</name>
                    <type>String</type>
                    <required>true</required>
                </field>
            </fields>
        </class>

        <!--
    <xs:complexType name="PropertyNameType">
        <xs:simpleContent>
            <xs:extension base="c:EmptyString">
                <xs:attribute name="propertyName" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    -->

        <class>
            <name>PropertyName</name>
            <fields>
                <field xml.content="true">
                    <name>value</name>
                    <type>String</type>
                </field>
                <field xml.attribute="true">
                    <name>propertyName</name>
                    <type>String</type>
                </field>
            </fields>
        </class>

        <!--
    <xs:simpleType name="EmptyString">
        <xs:restriction base="xs:string">
            <xs:maxLength value="0"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="TrackedPropertyType">
        <xs:simpleContent>
            <xs:extension base="c:PropertyNameType">
                <xs:attribute name="skipValue" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>
                            Specify which value denotes skipped execution in plugin config.
                            If active build skips execution (property set to skipValue) cache will allow such
                            discrepancy.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="defaultValue" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>
                            Manual value for reconciliation. Required to reconcile runtime only properties
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
          -->

        <class>
            <name>TrackedProperty</name>
            <fields>
                <field xml.content="true">
                    <name>value</name>
                    <type>String</type>
                </field>
                <field xml.attribute="true">
                    <name>propertyName</name>
                    <type>String</type>
                </field>
                <field xml.attribute="true">
                    <name>skipValue</name>
                    <type>String</type>
                </field>
                <field xml.attribute="true">
                    <name>defaultValue</name>
                    <type>String</type>
                </field>
            </fields>
        </class>
    </classes>

    <!--
    <xs:attributeGroup name="pathScanAttrGroup">
        <xs:annotation>
            <xs:documentation>
                Common attributes for scanning paths
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="recursive" type="xs:boolean" default="true">
            <xs:annotation>
                <xs:documentation>
                    Should walk directory specified in property recursively or not
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="glob" type="xs:string" default="*">
            <xs:annotation>
                <xs:documentation>
                    Glob to apply when scanning dir denoted by this property
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>



    -->

</model>
