<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ui.editors">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.ui.editors" id="markerUpdaters" name="Marker Updaters"/>
      </appInfo>
      <documentation>
         This extension point is used for registering marker update strategies with marker annotation models. A resource that is opened in a text editor is associated with a marker annotation model. For each marker attached to the resource this model manages a position that is updated with each change applied to the text in the editor. If the resource is saved, the text in the editor and the position managed for a marker are passed over to the registered marker update strategies. These strategies can then update the marker&apos;s attributes based on the text and the position. Marker update strategies are requested to implement the interface &lt;samp&gt;org.eclipse.ui.texteditor.IMarkerUpdater&lt;/samp&gt;. The update strategies can be registered either for a particular marker type or all marker types. The latter by omitting any marker type in the extension.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="updater" 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="updater">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the unique id of this provider
               </documentation>
            </annotation>
         </attribute>
         <attribute name="markerType" type="string">
            <annotation>
               <documentation>
                  the name of the marker type
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the qualified name of the marker updater class
               </documentation>
               <appInfo>
                  <meta.attribute kind="java"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         3.0 (originally named org.eclipse.ui.markerUpdaters)
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;pre&gt;
&lt;extension point= &quot;org.eclipse.ui.editors.markerUpdaters&quot;&gt; 
    &lt;updater 
        id=&quot;org.eclipse.jdt.ui.markerUpdaters.JavaSearchMarkerUpdater&quot; 
        class=&quot;org.eclipse.jdt.internal.ui.search.JavaSearchMarkerUpdater&quot; 
        markerType=&quot;org.eclipse.search.searchmarker&quot;&gt; 
    &lt;/updater&gt; 
&lt;/extension&gt; 
&lt;/pre&gt;
&lt;p&gt;
This example registers &lt;samp&gt;org.eclipse.jdt.internal.ui.search.JavaSearchMarkerUpdater&lt;/samp&gt; as a marker updater for all markers of the 
type &lt;samp&gt;org.eclipse.search.searchmarker&lt;/samp&gt; including all its derived types.
&lt;/p&gt;
&lt;pre&gt;
&lt;extension point= &quot;org.eclipse.ui.editors.markerUpdaters&quot;&gt; 
    &lt;updater 
        id=&quot;org.eclipse.ui.texteditor.BasicMarkerUpdater&quot; 
        class=&quot;org.eclipse.ui.texteditor.BasicMarkerUpdater&quot;&gt; 
    &lt;/updater&gt; 
&lt;/extension&gt; 
&lt;/pre&gt;
&lt;p&gt;
This example registers &lt;samp&gt;org.eclipse.ui.texteditor.BasicMarkerUpdater&lt;/samp&gt; as a marker updater independent from the type of the marker. 
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         Registered marker updaters have to implement the interface &lt;samp&gt;org.eclipse.ui.texteditor.IMarkerUpdater&lt;/samp&gt;.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         &lt;a href=&quot;hglegal.htm&quot;&gt;
 &lt;img SRC=&quot;ngibmcpy.gif&quot;
   ALT=&quot;Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.&quot;
   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
