<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.ui" id="markerImageProviders" name="Marker Image Providers"/>
      </appInfo>
      <documentation>
         The markerImageProvider extension point is the point for specifying the images for marker types in the defining plug-in.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="imageprovider" 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>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="imageprovider">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique name that can be used to identify this markerImageProvider.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="markertype" type="string" use="required">
            <annotation>
               <documentation>
                  The markertype is the id of the type defined in &lt;code&gt;org.eclipse.core.resources.IMarker&lt;/code&gt; that this definition is applied to.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  If there is no class defined the icon attribute is used to define the icon that will be applied to this type of marker.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string">
            <annotation>
               <documentation>
                  The class is the fully qualifed name of the class that will be used to look up an image. This class must implement &lt;code&gt;IMarkerImageProvider&lt;/code&gt;.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         2.1
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following an example of the two forms of markerImageProviders. The first one is a one where the image does not change and is declared directly. For the second one the image must be determined by an instance of IMarkerImageProvider.
 
&lt;p&gt;
&lt;pre&gt;
  &lt;extension
         point=&quot;org.eclipse.ui.markerImageProviders&quot;&gt;
      &lt;imageprovider
        markertype=&quot;org.eclipse.core.resources.taskmarker&quot;
            icon=&quot;taskicon.gif&quot;
            id=&quot;myPlugin.declarativeMarkerProvider&quot;&gt;
      &lt;/imageprovider&gt;
      &lt;imageprovider
            markertype=&quot;org.eclipse.core.resources.problemmarker&quot;
            class=&quot;myPlugin.MyIMarkerImageProvider&quot;
            id=&quot;myPlugin.implementedMarkerProvider&quot;&gt;
      &lt;/imageprovider&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         [Enter API information here.]
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         [Enter information about supplied implementation of this extension point.]
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         &lt;p&gt;
Copyright (c) 2002 IBM Corporation and others.
All rights reserved.   This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html&lt;/p&gt;
      </documentation>
   </annotation>

</schema>
