<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ui" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.ui" id="systemSummarySections" name="System Summary Sections"/>
      </appInfo>
      <documentation>
         The Eclipse UI provides an AboutDialog that can be branded and reused by client product plugins.  This dialog includes SystemSummary information that contains configuration details.  By extending the org.eclipse.ui.systemSummarySections extension point clients are able to put their own information into the log.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="section" minOccurs="1" 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>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="section">
      <complexType>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  an optional, unique name that will be used to identify this system summary section
               </documentation>
            </annotation>
         </attribute>
         <attribute name="sectionTitle" type="string" use="required">
            <annotation>
               <documentation>
                  a translatable name that will be displayed as the title of this section in the system summary
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The fully qualified name of a class that implements 
&lt;code&gt;org.eclipse.ui.about.ISystemSummarySection&lt;/code&gt;.  The class must provide a default constructor.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.ui.about.ISystemSummarySection"/>
               </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 a systemSummarySections extension: 
&lt;pre&gt;
&lt;extension
 point=&quot;org.eclipse.ui.systemSummarySections&quot;&gt;
 &lt;section
  id=&quot;RCPBrowser.CookieDetails&quot;
  sectionTitle=&quot;Browser Cookies&quot;
  class=&quot;org.eclipse.ui.examples.rcp.browser.CookieConfigDetails&quot;/&gt;
&lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The class specified in the section element must be a concrete subclass of &lt;code&gt;org.eclipse.ui.about.ISystemSummarySection&lt;/code&gt;.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         The Workbench uses this extension point to provide the following sections in the system summary dialog:
&lt;ul&gt;
&lt;li&gt;System properties: The properties returned by java.lang.System.getProperties().&lt;/li&gt;
&lt;li&gt;Features: The installed features.&lt;/li&gt;
&lt;li&gt;Plug-in Registry: The installed plug-ins and their status.&lt;/li&gt;
&lt;li&gt;User Preferences: The preferences that have been modified from their default values.&lt;/li&gt;
&lt;/ul&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2004, 2005 IBM Corporation 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>
