This is an automated email from the ASF dual-hosted git repository.

olamy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-site.git


The following commit(s) were added to refs/heads/master by this push:
     new c20cd187 Add cache xsd for 1.2.0 release
c20cd187 is described below

commit c20cd1877bdf37b16f0f603b37c3f488cd7c7762
Author: Olivier Lamy <ol...@apache.org>
AuthorDate: Thu Jul 25 12:40:36 2024 +1000

    Add cache xsd for 1.2.0 release
    
    Signed-off-by: Olivier Lamy <ol...@apache.org>
---
 content/resources/xsd/build-cache-build-1.2.0.xsd  | 279 +++++++
 content/resources/xsd/build-cache-config-1.2.0.xsd | 876 +++++++++++++++++++++
 content/resources/xsd/build-cache-diff-1.2.0.xsd   |  81 ++
 content/resources/xsd/build-cache-report-1.2.0.xsd |  81 ++
 4 files changed, 1317 insertions(+)

diff --git a/content/resources/xsd/build-cache-build-1.2.0.xsd 
b/content/resources/xsd/build-cache-build-1.2.0.xsd
new file mode 100644
index 00000000..b0041334
--- /dev/null
+++ b/content/resources/xsd/build-cache-build-1.2.0.xsd
@@ -0,0 +1,279 @@
+<?xml version="1.0"?>
+<!-- =================== DO NOT EDIT THIS FILE ====================         -->
+<!-- Generated by Modello 2.1.2,                                            -->
+<!-- any modifications will be overwritten.                                 -->
+<!-- ==============================================================         -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
elementFormDefault="qualified" 
xmlns="http://maven.apache.org/BUILD-CACHE-BUILD/1.2.0"; 
targetNamespace="http://maven.apache.org/BUILD-CACHE-BUILD/1.2.0";>
+  <xs:element name="build" type="Build">
+    <xs:annotation>
+      <xs:documentation source="version">1.0.0+</xs:documentation>
+      <xs:documentation source="description"></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:complexType name="Build">
+    <xs:annotation>
+      <xs:documentation source="version">1.0.0+</xs:documentation>
+      <xs:documentation source="description"></xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="cacheImplementationVersion" 
type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="final" type="xs:boolean">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="hashFunction" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="buildTime" type="xs:dateTime">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="buildServer" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="scm" type="Scm">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="goals">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+          <xs:documentation source="description"></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:element minOccurs="0" name="artifact" type="Artifact">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+          <xs:documentation source="description"></xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="attachedArtifacts">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="Artifact" name="attachedArtifact" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="executions">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="CompletedExecution" name="execution" 
minOccurs="0" maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="projectsInputInfo" 
type="ProjectsInputInfo">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="Scm">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="sourceBranch" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="revision" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="Artifact">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="groupId" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="artifactId" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="version" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="classifier" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="type" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="scope" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="fileName" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="fileHash" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="fileSize" type="xs:long" default="0">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="filePath" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="ProjectsInputInfo">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="checksum" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="items">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="DigestItem" name="item" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="DigestItem">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="type" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="hash" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="fileChecksum" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="content" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="isText" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="charset" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="eol" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:complexType name="CompletedExecution">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="executionKey" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="mojoClassName" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="properties">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="PropertyValue" name="property" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="PropertyValue">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="name" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="tracked" type="xs:boolean" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/build-cache-config-1.2.0.xsd 
b/content/resources/xsd/build-cache-config-1.2.0.xsd
new file mode 100644
index 00000000..3b92f113
--- /dev/null
+++ b/content/resources/xsd/build-cache-config-1.2.0.xsd
@@ -0,0 +1,876 @@
+<?xml version="1.0"?>
+<!-- =================== DO NOT EDIT THIS FILE ====================         -->
+<!-- Generated by Modello 2.1.2,                                            -->
+<!-- any modifications will be overwritten.                                 -->
+<!-- ==============================================================         -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
elementFormDefault="qualified" 
xmlns="http://maven.apache.org/BUILD-CACHE-CONFIG/1.2.0"; 
targetNamespace="http://maven.apache.org/BUILD-CACHE-CONFIG/1.2.0";>
+  <xs:element name="cache" type="CacheConfig">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+      <xs:documentation source="description">Cache build 
metadata</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:complexType name="CacheConfig">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+      <xs:documentation source="description">Cache build 
metadata</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="configuration" type="Configuration">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Configuration of main cache 
properties</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="input" type="Input">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Configuration for source code 
input files participating in checksum calculation</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="output" type="Output">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Configuration for output 
artifacts, it&apos;s needed if you want to explicitly include/exclude something 
from caching</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="executionControl" 
type="ExecutionControl">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Execution rules for plugins 
in cached mode. Defines which plugins should run always</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="Input">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+      <xs:documentation source="description">Configuration for source code 
input files participating in checksum calculation</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="global" type="PathSet">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Global input calculation 
rules applicable to all projects and plugins in the build</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="plugins">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Plugin specific input 
calculation rules</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="PluginConfigurationScan" name="plugin" 
minOccurs="0" maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="PluginConfigurationScan">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="effectivePom" type="EffectivePom">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Effective pom calculation 
rules</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="dirScan" type="DirScanConfig">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specifies plugin level rules 
of configuration processing in search of referenced source 
files</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="executions">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specifies execution specific 
configuration processing in search of referenced source files</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="ExecutionConfigurationScan" name="execution" 
minOccurs="0" maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="groupId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="artifactId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="EffectivePom">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="excludeProperties">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Plugin configuration property 
should be excluded from effective pom calculation</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="xs:string" name="excludeProperty" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="ExecutionConfigurationScan">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="execIds">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="xs:string" name="execId" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="dirScan" type="DirScanConfig">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specifies rules of 
configuration processing in search of referenced source files</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="ignoreParentConfig" type="xs:boolean" default="false" 
use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+        <xs:documentation source="description">ignore parent config or 
inherit/merge</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="DirScanConfig">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="includes">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">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:complexType>
+          <xs:sequence>
+            <xs:element type="TagScanConfig" name="include" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="excludes">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Tag to exclude when scanning 
plugin configuration for input files (blacklist)</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="TagExclude" name="exclude" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="tagScanConfigs">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Additional processing rules 
for non-blacklisted tags</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="TagScanConfig" name="tagScanConfig" 
minOccurs="0" maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="ignoreParent" type="xs:boolean" default="false" 
use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+        <xs:documentation source="description">Ignore parent settings or 
inherit and merge</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="mode" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+        <xs:documentation source="description">
+                        Either &apos;auto&apos; (scan directory accordingly to 
cache implementation) or &apos;skip&apos; (skip directory).
+                    </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="TagScanConfig">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="recursive" type="xs:boolean" default="true" 
use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="glob" type="xs:string" default="*" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="tagName" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="TagExclude">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="tagName" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="PathSet">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+      <xs:documentation source="description">Global input calculation rules 
applicable to all projects and plugins in the build</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="glob" type="xs:string" default="*">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Type of files to globally 
scan. All types are scanned by default. Example to scan only java and xml files 
: &lt;code&gt;{*.java,*.xml}&lt;/code&gt;
+                      </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="includes">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Extra paths to scan in order 
to compute the checksum (Project and test - sources/resources are already in 
the scan list)</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="Include" name="include" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="excludes">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Paths and files to exclude 
from checksum computation</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="Exclude" name="exclude" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="Exclude">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">&lt;p&gt;A file or a 
directory path to exclude from the checksum computation. Relative path are 
relative to each module basedir.&lt;/p&gt;
+            When referring to a directory, additional properties help adjust 
the scope of the exclusion:
+            &lt;ul&gt;
+                &lt;li&gt;glob - only entries matching this &lt;a 
href=&quot;https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob&quot;&gt;glob
 pattern&lt;/a&gt; are excluded&lt;/li&gt;
+                &lt;li&gt;entryType - type of entries excluded from the 
scan&lt;/li&gt;
+                &lt;li&gt;matcherType - entry property on which the glob 
matching is applied&lt;/li&gt;
+            &lt;/ul&gt;
+            &lt;p&gt;By default, targeting a directory excludes everything 
underneath it.&lt;/p&gt;
+            Examples :
+            &lt;ul&gt;
+              
&lt;li&gt;&lt;code&gt;&amp;lt;exclude&amp;gt;src/main/doc&amp;lt;/exclude&amp;gt;&lt;/code&gt;
 : excludes everything under : ${project.basedir}/src/main/doc&lt;/li&gt;
+              
&lt;li&gt;&lt;code&gt;&amp;lt;exclude&amp;gt;src/main/java/package-info.java&amp;lt;/exclude&amp;gt;&lt;/code&gt;
 : excludes this file : 
${project.basedir}/src/main/java/package-info.java&lt;/li&gt;
+              &lt;li&gt;&lt;code&gt;&amp;lt;exclude 
glob=&quot;package-info.java&quot;&amp;gt;&amp;lt;/exclude&amp;gt;&lt;/code&gt; 
: excludes all the files named package-info.java&lt;/li&gt;
+              &lt;li&gt;&lt;code&gt;&amp;lt;exclude 
glob=&quot;src/main/resources&amp;#x2F;**.txt&quot; entryType=&quot;FILE&quot; 
matcherType=&quot;PATH&quot; &amp;gt;&amp;lt;/exclude&amp;gt;&lt;/code&gt; : 
excludes all the text files located under the &quot;resources&quot; 
folder&lt;/li&gt;
+            &lt;/ul&gt;
+            &lt;p&gt;
+            Exclude elements can also be added per project with the use of 
&lt;a href=&quot;parameters.html#project-level-properties&quot;&gt;maven 
properties.&lt;/a&gt;
+            &lt;/p&gt;
+            </xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="glob" type="xs:string" default="**" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+            <xs:documentation source="description">Entries are filtered by 
matching this glob (see matcherType property).</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="entryType" type="xs:string" default="ALL" 
use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+            <xs:documentation source="description">Type of entries filtered. 
One of FILE, DIRECTORY, ALL. Excluding a directory excludes its subfiles and 
subdirectories.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="matcherType" type="xs:string" default="FILENAME" 
use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+            <xs:documentation source="description">The entry property matched 
for exclusion. One of FILENAME, PATH. For a path, if the exclusion value is 
empty or a relative path, matching is done relatively to the project 
folder.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:complexType name="Include">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">A &lt;p&gt;file or a 
directory path to add to checksum computation. Relative path are relative to 
each module basedir.&lt;/p&gt;
+           &lt;p&gt;Include elements can also be added per project with the 
use of &lt;a href=&quot;parameters.html#project-level-properties&quot;&gt;maven 
properties.&lt;/a&gt;&lt;/p&gt;
+           </xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="recursive" type="xs:boolean" default="true" 
use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+            <xs:documentation source="description">Will search in sub-folders 
if set to true</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="glob" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+            <xs:documentation source="description">Files in a directory are 
filtered by matching their names against this glob.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:complexType name="Output">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="exclude" type="OutputExclude">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Patterns to exclude output 
artifacts applicable to all projects in the build</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="OutputExclude">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="patterns">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="xs:string" name="pattern" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="ExecutionControl">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="runAlways" type="Executables">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specify which plugin should 
run always if present in build regardless of cached status</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="ignoreMissing" type="Executables">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="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 
&apos;verify&apos; and you locally you run &apos;install&apos;.
+                        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 minOccurs="0" name="reconcile" type="Reconcile">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specify which plugin should 
run always if present in build regardless of cached status</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="Executables">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="plugins">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specify which executions 
should run always if present in build regardless of cached 
status</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="PluginSet" name="plugin" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="executions">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specify which executions 
should run always if present in build regardless of cached 
status</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="ExecutionIdsList" name="execution" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="goalsLists">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specify which goals should 
run always if present in build regardless of cached status</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="GoalsList" name="goalsList" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="GoalsList">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="goals">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Goals 
identification</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:attribute name="groupId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="artifactId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="PluginSet">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="groupId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="artifactId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="ExecutionIdsList">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="execIds">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Executions ids list with 
plugin identifier</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="xs:string" name="execId" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="groupId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="artifactId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="Reconcile">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="plugins">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Reconciliation rules for 
plugin properties which might be affected by command line flags, 
etc</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="GoalReconciliation" name="plugin" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="logAllProperties" type="xs:boolean" default="true" 
use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+        <xs:documentation source="description">
+                        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 
(&amp;lt;nolog/&amp;gt;) and whitelists (&amp;lt;log/&amp;gt;) specified on
+                        plugin level
+                        * false: logged only tracked and included by 
whitelists (&amp;lt;log/&amp;gt;) on plugin level
+                        &amp;lt;log/&amp;gt;
+                    </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="GoalReconciliation">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="reconciles">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="TrackedProperty" name="reconcile" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="logs">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specify property which should 
be logged to build metadata for exploration</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="PropertyName" name="log" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="nologs">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Specify property which should 
not be logged</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="PropertyName" name="nolog" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="logAll" type="xs:boolean" default="true">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">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 
(&amp;lt;nolog/&amp;gt;) and whitelists (&amp;lt;log/&amp;gt;) specified on 
plugin
+                        level
+                        * false: logged only tracked and included by 
whitelists (&amp;lt;log/&amp;gt;) on plugin level
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="goal" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="groupId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="artifactId" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="TrackedProperty">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="propertyName" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="skipValue" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="defaultValue" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:complexType name="PropertyName">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="propertyName" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <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, METRO, 
METRO+MM, 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="mandatoryClean" type="xs:boolean" 
default="false">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Enable the cache storing 
ability only if a build went through the clean lifecycle.</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 type="xs:string" name="debug" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <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:attribute name="calculateProjectVersionChecksum" type="xs:boolean" 
default="false" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+        <xs:documentation source="description">Determines whether project 
version should be included to calculate checksum input.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <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>
+  <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 type="xs:string" name="scanProfile" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="Local">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="location" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">The base directory where the 
local cache is located.
+                        Defaults to {@code 
$\{localRepository}/../cache}.</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="maxBuildsCached" type="xs:int" 
default="3">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">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:all>
+  </xs:complexType>
+  <xs:complexType name="Remote">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="url" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Address of remote 
cache</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="enabled" type="xs:boolean" default="true" 
use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="saveToRemote" type="xs:boolean" default="false" 
use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+        <xs:documentation source="description">Save output to remote cache. 
Recommended to enable on CI agents only.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="transport" type="xs:string" default="resolver" 
use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+        <xs:documentation source="description">The transport to use, 
currently, only &apos;resolver&apos; is supported.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:string" default="cache" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+        <xs:documentation source="description">The repository id used to find 
authentication / mirror information in maven settings, default to 
&apos;cache&apos;.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="AttachedOutputs">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+      <xs:documentation source="description">Section relative to outputs which 
are not artifacts but need to be saved/restored.</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="dirNames">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Path to a directory 
containing files which needs to be saved/restored (relative to the build 
directory).</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="DirName" name="dirName" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="DirName">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">Path to a directory 
containing files which needs to be saved/restored (relative to the build 
directory).
+            &lt;br&gt;
+            Examples :
+            &lt;ul&gt;
+              
&lt;li&gt;&lt;code&gt;&amp;lt;dirName&amp;gt;classes&amp;lt;/dirName&amp;gt;&lt;/code&gt;
 : files in ${project.basedir}/target/classes&lt;/li&gt;
+              &lt;li&gt;&lt;code&gt;&amp;lt;dirName 
glob=&quot;jacoco.xml&quot;&amp;gt;&amp;lt;/dirName&amp;gt;&lt;/code&gt; : 
jacoco report files in ${project.basedir}/target&lt;/li&gt;
+              
&lt;li&gt;&lt;code&gt;&amp;lt;dirName&amp;gt;../src/main/javagen&amp;lt;/dirName&amp;gt;&lt;/code&gt;
 : files in ${project.basedir}/src/main/javagen (in this exemple, javagen is a 
folder saved in git but erased on clean) &lt;/li&gt;
+            &lt;/ul&gt;
+            &lt;br&gt;&lt;br&gt;
+
+            </xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="glob" type="xs:string" default="*" use="optional">
+          <xs:annotation>
+            <xs:documentation source="version">0.0.0+</xs:documentation>
+            <xs:documentation source="description">Entries are filtered by 
matching this glob.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/build-cache-diff-1.2.0.xsd 
b/content/resources/xsd/build-cache-diff-1.2.0.xsd
new file mode 100644
index 00000000..00680f4b
--- /dev/null
+++ b/content/resources/xsd/build-cache-diff-1.2.0.xsd
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<!-- =================== DO NOT EDIT THIS FILE ====================         -->
+<!-- Generated by Modello 2.1.2,                                            -->
+<!-- any modifications will be overwritten.                                 -->
+<!-- ==============================================================         -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
elementFormDefault="qualified" 
xmlns="http://maven.apache.org/BUILD-CACHE-DIFF/1.2.0"; 
targetNamespace="http://maven.apache.org/BUILD-CACHE-DIFF/1.2.0";>
+  <xs:element name="diff" type="Diff">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:complexType name="Diff">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="mismatches">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="Mismatch" name="mismatch" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="Mismatch">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="detail">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="MismatchDetail" name="detail" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+    <xs:attribute name="item" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="current" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="baseline" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="reason" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="resolution" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="context" type="xs:string" use="optional">
+      <xs:annotation>
+        <xs:documentation source="version">0.0.0+</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="MismatchDetail">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/build-cache-report-1.2.0.xsd 
b/content/resources/xsd/build-cache-report-1.2.0.xsd
new file mode 100644
index 00000000..73c17e42
--- /dev/null
+++ b/content/resources/xsd/build-cache-report-1.2.0.xsd
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<!-- =================== DO NOT EDIT THIS FILE ====================         -->
+<!-- Generated by Modello 2.1.2,                                            -->
+<!-- any modifications will be overwritten.                                 -->
+<!-- ==============================================================         -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
elementFormDefault="qualified" 
xmlns="http://maven.apache.org/BUILD-CACHE-REPORT/1.2.0"; 
targetNamespace="http://maven.apache.org/BUILD-CACHE-REPORT/1.2.0";>
+  <xs:element name="cacheReport" type="CacheReport">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:complexType name="CacheReport">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="projects">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element type="ProjectReport" name="project" minOccurs="0" 
maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="ProjectReport">
+    <xs:annotation>
+      <xs:documentation source="version">0.0.0+</xs:documentation>
+    </xs:annotation>
+    <xs:all>
+      <xs:element minOccurs="0" name="groupId" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="artifactId" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="checksum" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="checksumMatched" type="xs:boolean">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="lifecycleMatched" type="xs:boolean">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="pluginsMatched" type="xs:boolean">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="source" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="sharedToRemote" type="xs:boolean">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="url" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

Reply via email to