<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.core.runtime">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.core.runtime" id="products" name="Products"/>
      </appInfo>
      <documentation>
         Products are the Eclipse unit of branding.  Product extensions are supplied by plug-ins wishing to define one or more products.  There must be one product per extension as the extension id is used in processing and identifying the product.
&lt;p&gt;
There are two possible forms of product extension, static and dynamic.  Static product extensions directly contain all relevant information about the product.  Dynamic product extensions identify a class (an &lt;code&gt;IProductProvider&lt;/code&gt;) which is capable of defining one or more products when queried.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <choice>
               <element ref="product"/>
               <element ref="provider"/>
            </choice>
         </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="product">
      <complexType>
         <sequence>
            <element ref="property" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="application" type="string" use="required">
            <annotation>
               <documentation>
                  the default application to run when running this product
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  the human-readable name of this product
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="description" type="string">
            <annotation>
               <documentation>
                  the human-readable description of this product
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="property">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="name"/>
         </appInfo>
      </annotation>
      <complexType>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  the key under which this property is stored
               </documentation>
            </annotation>
         </attribute>
         <attribute name="value" type="string" use="required">
            <annotation>
               <documentation>
                  the value of this property
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="provider">
      <annotation>
         <documentation>
            details of a product provider
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="run"/>
         </sequence>
      </complexType>
   </element>

   <element name="run">
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the fully-qualified name of a class which implements 
&lt;samp&gt;org.eclipse.core.runtime.IProductProvider&lt;/samp&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.core.runtime.IProductProvider"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         Following is an example of static product declaration: 
&lt;p&gt;
&lt;pre&gt;
   &lt;extension id=&quot;coolProduct&quot; point=&quot;org.eclipse.core.runtime.products&quot;&gt; 
      &lt;product name=&quot;%coolName&quot; application=&quot;coolApplication&quot; description=&quot;%coolDescription&quot;&gt; 
          &lt;property name=&quot;windowImages&quot; value=&quot;window.gif&quot;/&gt; 
          &lt;property name=&quot;aboutImage&quot; value=&quot;image.gif&quot;/&gt; 
          &lt;property name=&quot;aboutText&quot; value=&quot;%aboutText&quot;/&gt; 
          &lt;property name=&quot;appName&quot; value=&quot;CoolApp&quot;/&gt; 
          &lt;property name=&quot;welcomePage&quot; value=&quot;$nl$/welcome.xml&quot;/&gt; 
          &lt;property name=&quot;preferenceCustomization&quot; value=&quot;plugin_customization.ini&quot;/&gt; 
      &lt;/product&gt; 
   &lt;/extension&gt; 
&lt;/pre&gt;
&lt;/p&gt;

The following is an example of a dynamic product (product provider) declaration:
Following is an example of an application declaration: 
&lt;p&gt;
&lt;pre&gt;
   &lt;extension id=&quot;coolProvider&quot; point=&quot;org.eclipse.core.runtime.products&quot;&gt; 
      &lt;provider&gt; 
         &lt;run class=&quot;com.example.productProvider&quot;/&gt; 
      &lt;/provider&gt; 
   &lt;/extension&gt; 
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         Static product extensions provided here are represented at runtime by instances of &lt;code&gt;IProduct&lt;/code&gt;.  Dynamic product extensions must identify an implementor of &lt;code&gt;IProductProvider&lt;/code&gt;.  See &lt;code&gt;org.eclipse.ui.branding.IProductConstants&lt;/code&gt; 
for details of the branding related product properties defined by the Eclipse UI.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         No implementations of &lt;code&gt;IProductProvider&lt;/code&gt; are supplied.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2004, 2005 IBM Corporation and others.&lt;br&gt;

This program and the accompanying materials are made 
available under the terms of the Eclipse Public License 2.0 which 
accompanies 
this distribution, and is available at 
&lt;a 
href=&quot;https://www.eclipse.org/legal/epl-2.0&quot;&gt;https://www.eclipse.org/legal/epl-v20.html&lt;/a&gt;/

SPDX-License-Identifier: EPL-2.0
      </documentation>
   </annotation>

</schema>
