<?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="classpathContainerInitializer" name="Classpath Container Initializers"/>
   </appInfo>
   <documentation>
      This extension point allows clients to contribute custom classpath container initializers, 
      which are used to lazily bind classpath containers to instances of org.eclipse.jdt.core.IClasspathContainer.
   </documentation>
</annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="classpathContainerInitializer" 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="classpathContainerInitializer">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique name identifying all containers for which this initializer will be activated.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the class that implements this container initializer.
         This class must implement a public subclass of &lt;code&gt;org.eclipse.jdt.core.ClasspathContainerInitializer&lt;/code&gt; with a public 0-argument constructor.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         Example of a declaration of a &lt;code&gt;ClasspathContainerInitializer&lt;/code&gt; for a classpath container named "JDK/1.2":  &lt;pre&gt;                                                                       
&lt;extension point="org.eclipse.jdt.core.classpathContainerInitializer"&gt;            
   &lt;classpathContainerInitializer                                          
      id="JDK"                                                        
      class="com.example.MyInitializer"/&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>
         &lt;p&gt;
&lt;a href="hglegal.htm"&gt;
 &lt;img SRC="ngibmcpy.gif"
   ALT="Copyright IBM Corp. 2000, 2004. All Rights Reserved."
   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

</schema>
