<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jdt.launching" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jdt.launching" id="executionEnvironments" name="Execution Environments"/>
      </appInfo>
      <documentation>
         Allows execution environments and execution environment analyzers to be contributed. An execution environment represents a kind of JRE - for example J2SE5. Analyzers are contributed to categorize JREs according to environments.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="environment" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="analyzer" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="ruleParticipant" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="environment">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier for this execution environment that is presented to the user - for example, &quot;J2SE-1.4&quot;.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="description" type="string">
            <annotation>
               <documentation>
                  a brief human-readable description of this execution environment
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="ruleParticipant" type="string">
            <annotation>
               <documentation>
                  the fully qualified name of a Java class that implements &lt;code&gt;org.eclipse.jdt.launching.environments.IAccessRuleParticipant&lt;/code&gt;. When specified, this class is used to create access rules for VM libraries associated with this execution environment during classpath resolution. This participant creates rules last, preceeded by any &lt;code&gt;ruleParticipants&lt;/code&gt; contributed as elements. This attribute was added in the 3.3 release.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.launching.environments.IAccessRuleParticipant"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="profileProperties" type="string">
            <annotation>
               <documentation>
                  Plug-in relative path to a properties file containing standard OSGi profile properties. Properties provide tooling with extra information about an environment - for example, system packages and default source and target level settings to use when compiling with this environment. This attribute was added in the 3.5 release. Minimally, the following properties should be specified. Note that any &quot;org.eclipse.jdt.core.compiler.*&quot; properties provided will be used as the default compiler settings for projects built against this execution environment.
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;org.osgi.framework.system.packages&lt;/code&gt; - a comma separated list of available (API) system packages&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.osgi.framework.bootdelegation&lt;/code&gt; - a comma spearated list of packages for which the Framework must delegate class loading to the boot class path&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.osgi.framework.executionenvironment&lt;/code&gt; - a comma separated list of execution environments provided by this environment (a list of environments that are a subset of this environment, including this environment)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;osgi.java.profile.name&lt;/code&gt; - environment identifier/name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.jdt.core.compiler.compliance&lt;/code&gt; - compiler compliance level - 1.4, 1.5, etc.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.jdt.core.compiler.source&lt;/code&gt; - source level - 1.3, 1.4, etc.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.jdt.core.compiler.codegen.targetPlatform&lt;/code&gt; - target level - 1.2, 1.3, etc.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.jdt.core.compiler.problem.assertIdentifier&lt;/code&gt; - severity of using &apos;assert&apos; as an identifier in source: error, warning, or ignore&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.jdt.core.compiler.problem.enumIdentifier&lt;/code&gt; - severity of using &apos;enum&apos; as an identifier in source: error, warning, or ignore&lt;/li&gt;
&lt;/ul&gt;
               </documentation>
               <appInfo>
                  <meta.attribute kind="resource"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="compliance" type="string">
            <annotation>
               <documentation>
                  In the absence of profileProperties this will provide the value for org.eclipse.jdt.core.compiler.compliance
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="analyzer">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier for this execution environment analyzer
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified name of a Java class that implements &lt;code&gt;org.eclipse.jdt.launching.environments.IExecutionEnvironmentAnalyzer&lt;/code&gt;
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.launching.environments.IExecutionEnvironmentAnalyzerDelegate"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="ruleParticipant">
      <annotation>
         <documentation>
            This element was added in the 3.3 release.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier for this rule participant
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the fully qualified name of a Java class that implements &lt;code&gt;org.eclipse.jdt.launching.environments.IAccessRuleParticipant&lt;/code&gt;. When specified, this class is used to create access rules for VM libraries associated with this execution environment during classpath resolution. This participant creates rules before a &lt;code&gt;ruleParticipant&lt;/code&gt; contributed by an execution environment directly, allowing a participant to override an environment&apos;s default rules.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.launching.environments.IAccessRuleParticipant"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         3.2
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         Following is an example definition of an execution environment and analyzer.
&lt;p&gt;
&lt;pre&gt;
&lt;extension point=&quot;org.eclipse.jdt.launching.executionEnvironments&quot;&gt;
      &lt;environment
            id=&quot;J2SE-1.4&quot;
            description=&quot;Java 2 Platform, Standard Edition 1.4&quot;/&gt;
      &lt;analyzer
            class=&quot;com.example.ExecutionEnvironmentAnalyzer&quot;
            id=&quot;com.example.eeAnalyzer&quot;/&gt;
&lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>


   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         JDT (&lt;code&gt;org.eclipse.jdt.launching&lt;/code&gt;) currently provides definitions and an analyzer for the following execution environments:
&lt;ul&gt;
&lt;li&gt;OSGi/Minimum-1.0&lt;/li&gt;
&lt;li&gt;OSGi/Minimum-1.1&lt;/li&gt;
&lt;li&gt;OSGi/Minimum-1.2&lt;/li&gt;
&lt;li&gt;JRE-1.1&lt;/li&gt;
&lt;li&gt;J2SE-1.2&lt;/li&gt;
&lt;li&gt;J2SE-1.3&lt;/li&gt;
&lt;li&gt;J2SE-1.4&lt;/li&gt;
&lt;li&gt;J2SE-1.5&lt;/li&gt;
&lt;li&gt;JavaSE-1.6&lt;/li&gt;
&lt;li&gt;JavaSE-1.7&lt;/li&gt;
&lt;li&gt;JavaSE-1.8&lt;/li&gt;
&lt;li&gt;CDC-1.0/Foundation-1.0&lt;/li&gt;
&lt;li&gt;CDC-1.1/Foundation-1.1&lt;/li&gt;
&lt;/ul&gt;
Since 3.5, a default access rule participant provides access rules for system packages associated with an execution environment. System packages are specified by an OSGi profile properties file (see &lt;code&gt;profileProperties&lt;/code&gt; above) via the &lt;code&gt;org.osgi.framework.system.packages&lt;/code&gt; property.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2005, 2015 IBM Corporation and others.&lt;br&gt;

This program and the accompanying materials are made 
available under the terms of the Eclipse Public License 2.0 which 
accompanies this distribution, and is available at 
&lt;a href=&quot;https://www.eclipse.org/legal/epl-2.0&quot;&gt;https://www.eclipse.org/legal/epl-v20.html&lt;/a&gt;/

SPDX-License-Identifier: EPL-2.0
      </documentation>
   </annotation>

</schema>
