<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.jsdt.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.wst.jsdt.ui" id="quickFixProcessors" name="Quick Fix Processor"/>
      </appInfo>
      <documentation>
         This extension point allows to add a Quick Fix processor to offer new Quick Fixes on JavaScript problems.
&lt;p&gt;
Since 3.2 an extension can specify which problem marker types it can handle. It will only get problems of these types to process.
If no handled marker type are specified, the processor will only get problems of types org.eclipse.wst.jsdt.core.problem, org.eclipse.wst.jsdt.core.buildpath_problem and org.eclipse.wst.jsdt.core.task (compatible to the behaviour prior to 3.2).
&lt;/p&gt;
&lt;p&gt;
This extension point supports the &lt;code&gt;enablement&lt;/code&gt; tag. Properties to test on are:
&lt;dl&gt;
&lt;li&gt;compilationUnit: type ICompilationUnit; the compilation unit the quick assist is applied on&lt;/li&gt;

&lt;li&gt;projectNatures: type Collection; all project natures of the current project&lt;/li&gt;
&lt;li&gt;sourceLevel: type String; the source compliance of the current project&lt;/li&gt;
&lt;/dl&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

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

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="quickFixProcessor" 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="quickFixProcessor">
      <complexType>
         <sequence>
            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
            <element ref="handledMarkerTypes" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier for the Quick Fix processor
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  a localized name of the Quick 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 Quick Fix processor. The
class must be public and implement
&lt;samp&gt;org.eclipse.wst.jsdt.ui.text.java.IQuickFixProcessor&lt;/samp&gt;
with a public 0-argument constructor.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.wst.jsdt.ui.text.java.IQuickFixProcessor"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="requiredSourceLevel" type="string">
            <annotation>
               <documentation>
                  an optional attribute to specify the minimal source compliance this processor requires
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="handledMarkerTypes">
      <annotation>
         <documentation>
            Specifies the marker types of the problems this quick fix processor can handle.
If no handled marker type are specified, the processor will get problems of types org.eclipse.wst.jsdt.core.problem, org.eclipse.wst.jsdt.core.buildpath_problem and org.eclipse.wst.jsdt.core.task.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="markerType" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
      </complexType>
   </element>

   <element name="markerType">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the marker type id of the marker that can be handled by this processor
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

&lt;p&gt;
&lt;pre&gt;
 &lt;extension point=&quot;org.eclipse.wst.jsdt.ui.quickFixProcessors&quot;&gt;
  &lt;quickFixProcessor
   id=&quot;AdvancedQuickFixProcessor&quot;
   name=&quot;Advanced Quick Fix Processor&quot;
   requiredSourceLevel=&quot;1.5&quot;
   class=&quot;com.example.AdvancedQuickFixProcessor&quot;&gt;
   &lt;handledMarkerTypes&gt;
      &lt;markerType id=&quot;org.eclipse.myplugin.audits&quot;/&gt;
   &lt;/handledMarkerTypes&gt;
   &lt;enablement&gt;
      &lt;with variable=&quot;projectNatures&quot;&gt;
         &lt;iterate operator=&quot;or&quot;&gt;
            &lt;equals value=&quot;org.eclipse.wst.jsdt.core.javanature&quot;/&gt;
         &lt;/iterate&gt;
      &lt;/with&gt;
   &lt;/enablement&gt;
  &lt;/quickFixProcessor&gt;
 &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         Extension point since 3.0. Element &lt;code&gt;handledMarkerTypes&lt;/code&gt; since 3.2.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The contributed class must implement &lt;code&gt;org.eclipse.wst.jsdt.ui.text.java.IQuickFixProcessor&lt;/code&gt;
      </documentation>
   </annotation>

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

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2007 IBM Corporation and others.&lt;br&gt;
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
