blob: 950b10eacced278d4efa20bf9e281b688ec6b29d [file] [log] [blame]
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/PROFILES/1.0.0" targetNamespace="http://maven.apache.org/PROFILES/1.0.0">
<xs:element name="profilesXml" type="ProfilesRoot">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">Root element of the profiles.xml file.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="ProfilesRoot">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">Root element of the profiles.xml file.</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="profiles">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
Configuration of build profiles for adjusting the build
according to environmental parameters
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="profile" minOccurs="0" maxOccurs="unbounded" type="Profile"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="activeProfiles">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
List of manually-activated build profiles, specified in the order in which
they should be applied.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="activeProfile" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="Profile">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
Modifications to the build process which is keyed on some
sort of environmental parameter.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="id" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The ID of this build profile, for activation
purposes.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="activation" type="Activation">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The conditional logic which will automatically
trigger the inclusion of this profile.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="properties">
<xs:annotation>
<xs:documentation source="version">0.0.0+</xs:documentation>
<xs:documentation source="description">Extended configuration specific to this profile goes
here.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="repositories">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The lists of the remote repositories
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="repository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="pluginRepositories">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
The lists of the remote repositories for discovering plugins
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="pluginRepository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="Activation">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
The conditions within the build runtime environment which will trigger
the automatic inclusion of the parent build profile.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="activeByDefault" type="xs:boolean" default="false">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">Flag specifying whether this profile is active as a default.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="jdk" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
Specifies that this profile will be activated when a matching JDK is detected.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="os" type="ActivationOS">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
Specifies that this profile will be activated when matching OS attributes are detected.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="property" type="ActivationProperty">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
Specifies that this profile will be activated when this System property is specified.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="file" type="ActivationFile">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
Specifies that this profile will be activated based on existence of a file.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="ActivationFile">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
This is the file specification used to activate a profile. The missing value will be a the location
of a file that needs to exist, and if it doesn&apos;t the profile must run. On the other hand exists will test
for the existence of the file and if it is there will run the profile.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="missing" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The name of the file that should be missing to activate a profile</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="exists" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The name of the file that should exist to activate a profile</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="ActivationOS">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
This is an activator which will detect an operating system&apos;s attributes in order to activate
its profile.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="name" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The name of the OS to be used to activate a profile</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="family" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The general family of the OS to be used to activate a profile (e.g. &apos;windows&apos;)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="arch" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The architecture of the OS to be used to activate a profile</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="version" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The version of the OS to be used to activate a profile</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="ActivationProperty">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
This is the property specification used to activate a profile. If the value field is empty,
then the existence of the named property will activate the profile, otherwise it does a case-sensitive
match against the property value as well.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="name" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The name of the property to be used to activate a profile</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="value" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The value of the property to be used to activate a profile</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="Repository">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
Repository contains the information needed for establishing connections with remote repoistory
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="releases" type="RepositoryPolicy">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">How to handle downloading of releases from this repository</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="snapshots" type="RepositoryPolicy">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">How to handle downloading of snapshots from this repository</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="id" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
A unique identifier for a repository.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="name" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
Human readable name of the repository
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="url" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
The url of the repository
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="layout" type="xs:string" default="default">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">The type of layout this repository uses for locating and storing artifacts - can be &quot;legacy&quot; or
&quot;default&quot;.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="RepositoryPolicy">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">Download policy</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="enabled" type="xs:boolean" default="true">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">Whether to use this repository for downloading this type of artifact</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="updatePolicy" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">
The frequency for downloading updates - can be &quot;always&quot;, &quot;daily&quot; (default), &quot;interval:XXX&quot; (in minutes) or
&quot;never&quot; (only if it doesn&apos;t exist locally).
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="checksumPolicy" type="xs:string">
<xs:annotation>
<xs:documentation source="version">1.0.0</xs:documentation>
<xs:documentation source="description">What to do when verification of an artifact checksum fails - warn, fail, etc. Valid values are
&quot;fail&quot; or &quot;warn&quot;</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:schema>