<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.update.core">
<annotation>
   <appInfo>
      <meta.schema plugin="org.eclipse.update.core" id="installHandlers" name="Global Install Handlers"/>
   </appInfo>
   <documentation>
      Extension point for registering global install handlers. Global
install handlers can be referenced by features 
(using the &lt;code&gt;&amp;lt;feature&amp;gt; &amp;lt;install-handler&amp;gt;&lt;/code&gt;
tags) without having to include a copy of the handler code as
part of the downloadable feature.
   </documentation>
</annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="install-handler" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  must be specified as &lt;b&gt;org.eclipse.update.core.installHandlers&lt;/b&gt;
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  must be specified. Identifies the new install handler
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  optional displayable label for the new install handler
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="install-handler">
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  fully qualified name of the handler implementation class for the identified
install handler
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of new global install handler registration.
&lt;br&gt;&lt;br&gt;
&lt;code&gt;
&amp;lt;extension&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;id="custom"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;point="org.eclipse.update.core.installHandlers"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;name="Custom install handler"&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;install-handler&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;class="com.xyz.update.CustomInstallHandler"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/install-handler&amp;gt;&lt;br&gt;
&amp;lt;/extension&amp;gt;&lt;br&gt;
&lt;/code&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         Registered install handler classes must implement 
&lt;code&gt;&lt;b&gt;org.eclipse.update.core.IInstallHandler&lt;/b&gt;&lt;/code&gt; interface.
Implementers should extend base class &lt;code&gt;&lt;b&gt;org.eclipse.update.core.BaseInstallHandler&lt;/b&gt;&lt;/code&gt;.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         The platform supplies a simple install handler that is registered as &lt;code&gt;&lt;b&gt;org.eclipse.update.core.DefaultInstallHandler&lt;/b&gt;&lt;/code&gt;. If used, it will copy any non-plug-in data entries provided with the feature into the feature installation directory.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         &lt;br&gt;
&lt;br&gt;&lt;a href="hglegal.htm"&gt;&lt;img SRC="ngibmcpy.gif" 
ALT="Copyright IBM Corp. and others 2000, 2002.  All Rights Reserved."
BORDER=0&gt;&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
