<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jdt.ui" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appinfo>
         <meta.schema plugin="org.eclipse.jdt.ui" id="classpathFixProcessors" name="Classpath Fix Processor"/>
      </appinfo>
      <documentation>
         This extension point allows to add a processor to offer fixes for incomplete class paths when types cannot be resolved.

&lt;p&gt;
This extension point supports the &lt;code&gt;&amp;lt;enablement&amp;gt;&lt;/code&gt; element.
&lt;!-- see org.eclipse.jdt.internal.ui.text.correction.ClasspathFixProcessorDescriptor#matches(IJavaProject): --&gt;
The default variable is the containing &lt;code&gt;org.eclipse.jdt.core.IJavaProject&lt;/code&gt;.
&lt;br&gt;Defined variables for &lt;code&gt;&amp;lt;with&amp;gt;&lt;/code&gt; expressions are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;project&quot;: type &lt;code&gt;org.eclipse.jdt.core.IJavaProject&lt;/code&gt;; the current project (same as the default variable)&lt;/li&gt;
&lt;li&gt;&quot;sourceLevel&quot;: type &lt;code&gt;java.lang.String&lt;/code&gt;; the source compliance level of the current project&lt;/li&gt;
&lt;/ul&gt;

A processor can specify to override another processor. An overridden processor is only asked to provide proposals when the overriding processor returns &lt;code&gt;null&lt;/code&gt; as proposals.
      </documentation>
   </annotation>

   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="classpathFixProcessor" minOccurs="1" 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>
               <appinfo>
                  <meta.attribute translatable="true"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="classpathFixProcessor">
      <complexType>
         <sequence>
            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
            <element ref="overrides" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier for the Classpath Fix processor
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  a localized name of the Classpath Fix processor
               </documentation>
               <appinfo>
                  <meta.attribute translatable="true"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the name of the class that implements this Classpath Fix processor. The
class must be public and extend
&lt;samp&gt;org.eclipse.jdt.ui.text.java.ClasspathFixProcessor&lt;/samp&gt;
with a public 0-argument constructor.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.ui.text.java.ClasspathFixProcessor:"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="overrides">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The id of the classspath fix processor that is overridden by the current processor. The current processor can choose to replace proposals of the extended processor.
               </documentation>
               <appinfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.jdt.ui.classpathFixProcessors/classpathFixProcessor/@id"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appinfo>
         <meta.section type="since"/>
      </appinfo>
      <documentation>
         3.4
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="examples"/>
      </appinfo>
      <documentation>
         The following is an example of a Classpath Fix processor contribution:

&lt;pre&gt;
 &lt;extension point=&quot;org.eclipse.jdt.ui.classpathFixProcessors&quot;&gt;
  &lt;classpathFixProcessor
   id=&quot;MyClasspathFixProcessor&quot;
   name=&quot;My Classpath Fix Processor&quot;
   class=&quot;com.example.MyClasspathFixProcessor&quot;&gt;
   &lt;enablement&gt;
      &lt;with variable=&quot;project&quot;&gt;
   &lt;test property=&quot;org.eclipse.jdt.core.isInJavaProjectWithNature&quot;
         value=&quot;org.eclipse.pde.PluginNature&quot;/&gt;
      &lt;/with&gt;
   &lt;/enablement&gt;
   &lt;overrides
      id=&quot;org.eclipse.jdt.ui.text.correction.DefaultClasspathFixProcessor&quot;&gt;
   &lt;/overrides&gt;
  &lt;/classpathFixProcessor&gt;
 &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="apiInfo"/>
      </appinfo>
      <documentation>
         The contributed class must extend &lt;code&gt;org.eclipse.jdt.ui.text.java.ClasspathFixProcessor&lt;/code&gt;
      </documentation>
   </annotation>


   <annotation>
      <appinfo>
         <meta.section type="copyright"/>
      </appinfo>
      <documentation>
         Copyright (c) 2007, 2013 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>
