<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jdt.launching">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jdt.launching" id="runtimeClasspathEntryResolvers" name="Java Runtime Classpath Entry Resolvers"/>
      </appInfo>
      <documentation>
         This extension point allows clients to dynamically resolve entries used on the runtime classpath and source
lookup path, for corresponding classpath variables and classpath containers.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="runtimeClasspathEntryResolver" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified identifier of the target extension point
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  an optional identifier of the extension instance
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name of the extension instance
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="runtimeClasspathEntryResolver">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier that can be used to reference this resolver.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the class that implements this resolver.  The class must implement &lt;code&gt;IRuntimeClasspathEntryResolver&lt;/code&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.launching.IRuntimeClasspathEntryResolver"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="variable" type="string">
            <annotation>
               <documentation>
                  the name of the classpath variable this resolver is registered for. At least one of variable or container must be specified, and at most one resolver can be registered for a variable or container.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="container" type="string">
            <annotation>
               <documentation>
                  the identifier of the classpath container this resolver is registered for.  At least one of variable or container must be specified, and at most one resolver can be registered for a variable or container.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="runtimeClasspathEntryId" type="string">
            <annotation>
               <documentation>
                  the identifier of the runtime classpath entry this resolver is associated with
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of a resolver:

&lt;p&gt;
&lt;pre&gt;
 &lt;extension point=&quot;org.eclipse.jdt.launching.runtimeClasspathEntryResolvers&quot;&gt;
  &lt;runtimeClasspathEntryResolver
   class=&quot;com.example.ResolverImplementation&quot;
   id=&quot;com.example.ResolverId&quot;
   variable=&quot;CLASSPATH_VARIABLE&quot;&gt;
  &lt;/runtimeClasspathEntryResolver&gt;
 &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         Implementations are provided for the standard JRE_LIB classpath variable and JRE_CONTAINER classpath container.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2000, 2005 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>
