You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-commits@maven.apache.org by sv...@apache.org on 2024/07/25 02:43:51 UTC
svn commit: r1919506 [6/6] - in /maven/website/content: ./ archives/maven-2.x/ background/ developers/ developers/conventions/ developers/release/ developers/website/ docs/ docs/2.0.1/ docs/2.0.10/ docs/2.0.11/ docs/2.0.2/ docs/2.0.3/ docs/2.0.4/ docs/...
Added: maven/website/content/xsd/build-cache-config-1.2.0.xsd
==============================================================================
--- maven/website/content/xsd/build-cache-config-1.2.0.xsd (added)
+++ maven/website/content/xsd/build-cache-config-1.2.0.xsd Thu Jul 25 02:43:49 2024
@@ -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'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 'auto' (scan directory accordingly to cache implementation) or 'skip' (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 : <code>{*.java,*.xml}</code>
+ </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"><p>A file or a directory path to exclude from the checksum computation. Relative path are relative to each module basedir.</p>
+ When referring to a directory, additional properties help adjust the scope of the exclusion:
+ <ul>
+ <li>glob - only entries matching this <a href="https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob">glob pattern</a> are excluded</li>
+ <li>entryType - type of entries excluded from the scan</li>
+ <li>matcherType - entry property on which the glob matching is applied</li>
+ </ul>
+ <p>By default, targeting a directory excludes everything underneath it.</p>
+ Examples :
+ <ul>
+ <li><code>&lt;exclude&gt;src/main/doc&lt;/exclude&gt;</code> : excludes everything under : ${project.basedir}/src/main/doc</li>
+ <li><code>&lt;exclude&gt;src/main/java/package-info.java&lt;/exclude&gt;</code> : excludes this file : ${project.basedir}/src/main/java/package-info.java</li>
+ <li><code>&lt;exclude glob="package-info.java"&gt;&lt;/exclude&gt;</code> : excludes all the files named package-info.java</li>
+ <li><code>&lt;exclude glob="src/main/resources&#x2F;**.txt" entryType="FILE" matcherType="PATH" &gt;&lt;/exclude&gt;</code> : excludes all the text files located under the "resources" folder</li>
+ </ul>
+ <p>
+ Exclude elements can also be added per project with the use of <a href="parameters.html#project-level-properties">maven properties.</a>
+ </p>
+ </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 <p>file or a directory path to add to checksum computation. Relative path are relative to each module basedir.</p>
+ <p>Include elements can also be added per project with the use of <a href="parameters.html#project-level-properties">maven properties.</a></p>
+ </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 '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 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 (&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;
+ </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 (&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
+ </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 'resolver' 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 'cache'.</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).
+ <br>
+ Examples :
+ <ul>
+ <li><code>&lt;dirName&gt;classes&lt;/dirName&gt;</code> : files in ${project.basedir}/target/classes</li>
+ <li><code>&lt;dirName glob="jacoco.xml"&gt;&lt;/dirName&gt;</code> : jacoco report files in ${project.basedir}/target</li>
+ <li><code>&lt;dirName&gt;../src/main/javagen&lt;/dirName&gt;</code> : files in ${project.basedir}/src/main/javagen (in this exemple, javagen is a folder saved in git but erased on clean) </li>
+ </ul>
+ <br><br>
+
+ </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
Added: maven/website/content/xsd/build-cache-diff-1.2.0.xsd
==============================================================================
--- maven/website/content/xsd/build-cache-diff-1.2.0.xsd (added)
+++ maven/website/content/xsd/build-cache-diff-1.2.0.xsd Thu Jul 25 02:43:49 2024
@@ -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
Added: maven/website/content/xsd/build-cache-report-1.2.0.xsd
==============================================================================
--- maven/website/content/xsd/build-cache-report-1.2.0.xsd (added)
+++ maven/website/content/xsd/build-cache-report-1.2.0.xsd Thu Jul 25 02:43:49 2024
@@ -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