<?xml version="1.0"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one             -->
<!-- or more contributor license agreements. See the NOTICE file            -->
<!-- distributed with this work for additional information                  -->
<!-- regarding copyright ownership. The ASF licenses this file              -->
<!-- to you under the Apache License, Version 2.0 (the                      -->
<!-- "License"); you may not use this file except in compliance             -->
<!-- with the License. You may obtain a copy of the License at              -->
<!--                                                                        -->
<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
<!--                                                                        -->
<!-- Unless required by applicable law or agreed to in writing,             -->
<!-- software distributed under the License is distributed on an            -->
<!-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY                 -->
<!-- KIND, either express or implied. See the License for the               -->
<!-- specific language governing permissions and limitations                -->
<!-- under the License.                                                     -->
<!-- =================== DO NOT EDIT THIS FILE ====================         -->
<!-- Generated by Modello 2.8.1,                                            -->
<!-- any modifications will be overwritten.                                 -->
<!-- ==============================================================         -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/SETTINGS/1.3.0" targetNamespace="http://maven.apache.org/SETTINGS/1.3.0">
  <xs:element name="settings" type="Settings">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        Root element of the user configuration file.
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="Settings">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        Root element of the user configuration file.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="localRepository" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The local repository.&lt;br&gt;&lt;b&gt;Default value is:&lt;/b&gt; &lt;code&gt;${user.home}/.m2/repository&lt;/code&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="interactiveMode" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether Maven should attempt to interact with the user for input.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="usePluginRegistry" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether Maven should use the &lt;code&gt;plugin-registry.xml&lt;/code&gt; file to manage plugin versions.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="offline" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Indicate whether maven should operate in offline mode full-time.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="proxies">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Configuration for different proxy profiles. Multiple proxy profiles
            might come in handy for anyone working from a notebook or other
            mobile platform, to enable easy switching of entire proxy
            configurations by simply specifying the profile id, again either from
            the command line or from the defaults section below.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="Proxy" name="proxy" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="servers">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Configuration of server-specific settings, mainly authentication
            method. This allows configuration of authentication on a per-server
            basis.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="Server" name="server" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="mirrors">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Configuration of download mirrors for repositories.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="Mirror" name="mirror" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <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 type="Profile" name="profile" minOccurs="0" maxOccurs="unbounded"/>
          </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 type="xs:string" name="activeProfile" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="pluginGroups">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            List of groupIds to search for a plugin when that plugin
            groupId is not explicitly provided.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="xs:string" name="pluginGroup" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Proxy">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;proxy&amp;gt;&lt;/code&gt; element contains informations required to a proxy settings.
        </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="active" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether this proxy configuration is the active one.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="protocol" type="xs:string" default="http">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The proxy protocol.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="username" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The proxy user.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="password" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The proxy password.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="port" type="xs:int" default="8080">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The proxy port.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="host" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The proxy host.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="nonProxyHosts" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The list of non-proxied hosts (delimited by &lt;code&gt;|&lt;/code&gt;).
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="id" type="xs:string" default="default">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Item identifier.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Server">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        The &lt;code&gt;&amp;lt;server&amp;gt;&lt;/code&gt; element contains informations required to a server settings.
        </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="username" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The username used to authenticate.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="password" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The password used in conjunction with the username to authenticate.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="privateKey" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The private key location used to authenticate.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="passphrase" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The passphrase used in conjunction with the privateKey to authenticate.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="filePermissions" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The permissions for files when they are created.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="directoryPermissions" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            The permissions for directories when they are created.
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="configuration">
        <xs:annotation>
          <xs:documentation source="version">0.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Extra configuration for the transport layer.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
          <xs:anyAttribute processContents="skip"/>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="aliases">
        <xs:annotation>
          <xs:documentation source="version">1.3.0+</xs:documentation>
          <xs:documentation source="description">List of additional server aliases. For each alias, an additional server entry will be generated
            with the same configuration as the original one, but with the ID replaced by the alias
            and with an empty aliases list.
            This is useful when the same credentials should be used for multiple servers.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="xs:string" name="alias" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="repositoryOrigins">
        <xs:annotation>
          <xs:documentation source="version">1.3.0+</xs:documentation>
          <xs:documentation source="description">List of repository origins these credentials may be used with, each written as
            {@code scheme://host} or {@code scheme://host:port}, for example {@code https://repo.example.org}
            or {@code https://mirror.example.org:8443} - an origin, not a full repository URL.
            Maven binds the credentials of a server to the origins of the repositories and mirrors declared
            with the same id, see the {@code maven.repository.credentialScope} user property. The origins
            listed here are added to those; nothing is replaced. Declaring them is needed when the repository
            using these credentials is not known when the session is created, for example a repository
            declared in a {@code settings.xml} profile that is not listed in {@code &lt;activeProfiles&gt;}
            but activated through {@code &lt;activation&gt;} or {@code -P}.
            Comparison is case insensitive and the default ports 80 (http) and 443 (https) are equivalent to
            no port.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element type="xs:string" name="repositoryOrigin" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="id" type="xs:string" default="default">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Item identifier.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Mirror">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        A download mirror for a given repository.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="mirrorOf" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            A repository id or (since Maven 2.0.9) an expression matching one or many repository ids to mirror, e.g.,
            &lt;code&gt;central&lt;/code&gt; or &lt;code&gt;*,!repo1&lt;/code&gt;.
            &lt;code&gt;*&lt;/code&gt; (since Maven 2.0.5), &lt;code&gt;external:*&lt;/code&gt; (since Maven 2.0.9) and &lt;code&gt;external:http:*&lt;/code&gt; (since Maven 3.8.0) have
            a special meaning: see &lt;a href=&quot;/guides/mini/guide-mirror-settings.html&quot;&gt;Mirror Settings&lt;/a&gt; guide.
            
          </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">
            The optional name that describes the mirror.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="url" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">The URL of the mirror 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.1.0+</xs:documentation>
          <xs:documentation source="description">
            
            The layout of the mirror repository.
            &lt;br&gt;&lt;b&gt;Since&lt;/b&gt;: Maven 3
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="mirrorOfLayouts" type="xs:string" default="default,legacy">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
            
            The layouts of repositories being mirrored. This value can be used to restrict the usage
            of the mirror to repositories with a matching layout (apart from a matching id).
            &lt;br&gt;&lt;b&gt;Since&lt;/b&gt;: Maven 3
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="blocked" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.2.0+</xs:documentation>
          <xs:documentation source="description">
            
            Whether this mirror should be blocked from any download request but fail the download process, explaining why.
            &lt;br&gt;&lt;b&gt;Default value is&lt;/b&gt;: &lt;code&gt;false&lt;/code&gt;
            &lt;br&gt;&lt;b&gt;Since&lt;/b&gt;: Maven 3.8.0
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="id" type="xs:string" default="default">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Item identifier.</xs:documentation>
        </xs:annotation>
      </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="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.
            Contents take the form of
            &lt;code&gt;&amp;lt;property.name&amp;gt;property.value&amp;lt;/property.name&amp;gt;&lt;/code&gt;
            
          </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 type="Repository" name="repository" minOccurs="0" maxOccurs="unbounded"/>
          </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 type="Repository" name="pluginRepository" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="id" type="xs:string" default="default">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">Item identifier.</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 repository
      </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: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 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="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 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="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:schema>