<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ui.ide">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.ui.ide" id="markerSupport" name="Marker Support"/>
      </appInfo>
      <documentation>
         The Marker Support extension point defines extensions to the workbench tools that show markers such as the problems, bookmarks and tasks views.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="problemFilter" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="markerTypeCategory" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="markerGrouping" 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>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="problemFilter">
      <annotation>
         <documentation>
            A problem filter is a filter that can be applied to problems.
         </documentation>
      </annotation>
      <complexType>
         <sequence minOccurs="0" maxOccurs="unbounded">
            <element ref="selectedType"/>
         </sequence>
         <attribute name="enabled" type="boolean">
            <annotation>
               <documentation>
                  Whether or not this filter is enabled by default. If this value is not specified the value is true.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="scope">
            <annotation>
               <documentation>
                  The scope of the filter. One of 
ON_ANY: any item in the workbench
ON_SELECTED_ONLY: on the currently selected item
ON_SELECTED_AND_CHILDREN: on the currently selected item and it&apos;s children
ON_ANY_IN_SAME_CONTAINER: on any item with the same top level container as the selection
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="ON_ANY">
                  </enumeration>
                  <enumeration value="ON_SELECTED_ONLY">
                  </enumeration>
                  <enumeration value="ON_SELECTED_AND_CHILDREN">
                  </enumeration>
                  <enumeration value="ON_ANY_IN_SAME_CONTAINER">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
         <attribute name="onDescription" type="string">
            <annotation>
               <documentation>
                  The description of the problem to check against. If this value is preceded with a ! the check will check that the description does not contain this string.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="severity">
            <annotation>
               <documentation>
                  The severity of problem this filter is enabled for. If this value is not set then no filtering by severity will occur. Severity can be one of the following values: ERROR, WARNING or INFO.
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="ERROR">
                  </enumeration>
                  <enumeration value="WARNING">
                  </enumeration>
                  <enumeration value="INFO">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  The human readable name of the filter.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The unique id of the filter.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="selectedType">
      <annotation>
         <documentation>
            The selectedTypes are the ids of the marker types selected by default in this filter. If there are no selected types all marker types are enabled. All types not specified in this filter are disabled by default.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="markerId" type="string">
            <annotation>
               <documentation>
                  The id of a marker that is enabled by default.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="markerTypeCategory">
      <annotation>
         <documentation>
            The markerTypeCategory is an element for grouping marker types into a single category.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="markerTypeReference"/>
         </sequence>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  The label is the human readable name that will be presented to the user.
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="markerTypeReference">
      <annotation>
         <documentation>
            The markerTypeReference is a reference to a markerType defined using the extension point in org.eclipse.core.resources.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The id of the markerType
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="markerGrouping">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="label"/>
         </appInfo>
         <documentation>
            A markerGrouping is a definition of a grouping criterea for the marker views that support it (currently only the problems view).
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="markerTypeReference" minOccurs="1" maxOccurs="unbounded"/>
            <element ref="markerAttributeMapping" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="attribute" type="string" use="required">
            <annotation>
               <documentation>
                  The attribute is the name of the marker attribute to test for this category.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  The label is the human readable String that will be used to create the entry in the Group By-&gt; menu for this marker grouping.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="markerAttributeMapping">
      <annotation>
         <documentation>
            A markerAttributeMapping maps a marker attribute to a name.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="value" type="string" use="required">
            <annotation>
               <documentation>
                  The value is the value of the attribute that is used in this mapping.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  The name of the category that this attribute value indicates
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         [Enter the first release in which this extension point appears.]
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of a problem filter definition in the marker support. This example only shows java warnings on the selected element and it&apos;s children and filters out those with the String NON-NLS
&lt;p&gt;
&lt;pre&gt;
 &lt;extension point=&quot;org.eclipse.ui.ide.markerSupport&quot;&gt;
  &lt;problemFilter
    name = &quot;Warnings&quot;
    id = &quot;org.eclipse.example.warningFilter&quot;
    enabled = &quot;true&quot;
    scope=&quot;ON_SELECTED_AND_CHILDREN&quot;
    onDescription=&quot;!NON-NLS&quot;
    severity=&quot;WARNING&quot;
  &gt;
  &lt;selectedType
    markerId=&quot;org.eclipse.core.resources.problemmarker&quot;/&gt;
  &lt;/problemFilter&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>
         
      </documentation>
   </annotation>

</schema>
