<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jdt.core">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jdt.core" id="validationParticipant" name="Compilation Participants"/>
      </appInfo>
      <documentation>
         This extension point allows clients to participate in the validation process by receiving notifications at various stages of build and reconcile, via a org.eclipse.jdt.core.compiler.validationParticipant.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="validationParticipant" 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="validationParticipant">
      <annotation>
         <documentation>
            definition of a compilation participant. This definition allows to order participants. Participants are run by group. The group of participants that modify the environment is run first, then the group of participants that create problems is run, finally the group of other participants is run. Inside each group, participants are ordered using their &apos;requires&apos; attributes. If a &apos;requires&apos; attribute point to a participant that doesn&apos;t belong to the group, it is ignored.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="requires" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="managedMarker" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the class that implements this compilation participant. This class must implement a public subclass of &lt;code&gt;org.eclipse.jdt.core.compiler.validationParticipant&lt;/code&gt; with a public 0-argument constructor.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.core.compiler.validationParticipant"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier for this participant
               </documentation>
            </annotation>
         </attribute>
         <attribute name="modifiesEnvironment" type="boolean">
            <annotation>
               <documentation>
                  optionally specify whether this compilation participant modifies the environment, thus affecting binding resolution. If not specified, false is assumed.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="createsProblems" type="boolean">
            <annotation>
               <documentation>
                  optionally specifies whether this compilation participant creates problems. If not specified, false is assumed.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="requiredSourceLevel" type="string">
            <annotation>
               <documentation>
                  the required source level this participant needs (one of the JavaCore.VERSION* constants). If a project&apos;s source level is below this required source level, the participant will not be invoked. If this attribute is not specified, the participant will be invoked for any source level.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="requires">
      <annotation>
         <documentation>
            a participant that is required to run this compilation participant
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the unique identifier of the participant that is required
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="managedMarker">
      <annotation>
         <documentation>
            a managed marker is created from the recorded problems (see BuildContext#recordNewProblems(CategorizedProblem[])) and is removed when the corresponding source file is re-built or when the project is cleaned
         </documentation>
      </annotation>
      <complexType>
         <attribute name="markerType" type="string" use="required">
            <annotation>
               <documentation>
                  the type of the managed marker
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         Example of a declaration of a &lt;code&gt;validationParticipant&lt;/code&gt;:  &lt;pre&gt;                                                                       
&lt;extension
      id=&quot;apt&quot;
      name=&quot;%annotationProcessingName&quot;
      point=&quot;org.eclipse.jdt.core.validationParticipant&quot;&gt;
   &lt;validationParticipant
         class=&quot;org.eclipse.jdt.apt.core.internal.AptvalidationParticipant&quot;
         id=&quot;APT&quot;
         requiredSourceLevel=&quot;1.5&quot;&gt;
      &lt;managedMarker markerType=&quot;org.eclipse.jdt.apt.core.compile.problem&quot;/&gt;
   &lt;/validationParticipant&gt;
&lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

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

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

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2006 BEA Systems, Inc 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>
