<?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="siteTypes" name="Site Type Factory"/>
      </appInfo>
      <documentation>
         The platform update mechanism supports pluggable site type
implementations. A new site type can be registered in order
to support alternate site layout schemes.
&lt;p&gt;
The &lt;code&gt;siteTypes&lt;/code&gt;
extension point allows alternate site implementations to be
registered using a symbolic type identifier. Whenever the 
type is referenced using this identifier, the supplied factory
is used to create the correct concrete site implementation.
&lt;/p&gt;
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="site-factory" 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.siteTypes&lt;/b&gt;
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  must be specified. Identifies the new site type
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  optional displayable label for the new site type
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="site-factory">
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  fully qualified name of the factory class for the identified
site type
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of new site type registration.
&lt;p&gt;
&lt;pre&gt;
   &lt;extension
        id=&quot;custom&quot;
        point=&quot;org.eclipse.update.core.siteTypes&quot;
        name=&quot;Custom site&quot;&gt;
      &lt;site-factory
          class=&quot;com.xyz.update.CustomSiteFactory&quot;&gt;
      &lt;/site-factory&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         Registered factory classes must implement 
&lt;code&gt;&lt;b&gt;org.eclipse.update.core.ISiteFactory&lt;/b&gt;&lt;/code&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         The platform supplies two standard implementations of site
types. One representing the default update server type, and
the other representing the local file system site.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2002, 2003 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 &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;.
      </documentation>
   </annotation>

</schema>
