<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.ui" id="perspectiveExtensions" name="Perspective Extensions"/>
      </appInfo>
      <documentation>
         This extension point is used to extend perspectives 
registered by other plug-ins. A perspective defines 
the initial contents of the window action bars 
(menu and toolbar) and the initial set of views 
and their layout within a workbench page.  
Other plug-ins may contribute actions or views to 
the perspective which appear when the perspective 
is selected.  Optional additions by other plug-ins 
are appended to the initial definition.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="perspectiveExtension" 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="perspectiveExtension">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="targetID"/>
         </appInfo>
      </annotation>
      <complexType>
         <choice minOccurs="0" maxOccurs="unbounded">
            <element ref="actionSet"/>
            <element ref="viewShortcut"/>
            <element ref="perspectiveShortcut"/>
            <element ref="newWizardShortcut"/>
            <element ref="view"/>
            <element ref="showInPart"/>
         </choice>
         <attribute name="targetID" type="string" use="required">
            <annotation>
               <documentation>
                  the unique identifier of the perspective (as specified in the registry) into which the contribution is made.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="actionSet">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the unique identifier of the action set which will be added to the perspective.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="viewShortcut">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the unique identifier of the view which will be added to the perspective&apos;s &quot;Show View&quot; submenu of the &quot;Window&quot; menu.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="perspectiveShortcut">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the unique identifier of the perspective which will be added to the perspective&apos;s &quot;Open Perspective&quot; submenu of the &quot;Window&quot; menu.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="newWizardShortcut">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the unique identifier of the new wizard which will be added to the perspective&apos;s &quot;New&quot; submenu of the &quot;File&quot; menu.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="showInPart">
      <complexType>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  the unique identifier of the view which will be added to the perspective&apos;s &quot;Show In...&quot; prompter in the Navigate menu.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="view">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the unique identifier of the view which will be added to the perspective layout.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="relative" type="string">
            <annotation>
               <documentation>
                  the unique identifier of a view which already exists in the perspective.  This will be used as a reference point for placement of the view.  The relationship between these two views is defined by &lt;samp&gt;relationship&lt;/samp&gt;.  Ignored if relationship is &quot;fast&quot;.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="relationship" use="required">
            <annotation>
               <documentation>
                  specifies the relationship between &lt;samp&gt;id&lt;/samp&gt; and
&lt;samp&gt;relative&lt;/samp&gt;. 
The following values are supported:
&lt;ul&gt;
&lt;b&gt;fast&lt;/b&gt; - the view extension will be created as a fast view.
&lt;br&gt;&lt;b&gt;stack&lt;/b&gt; - the view extension will be stacked with the relative
view in a folder.
&lt;br&gt;&lt;b&gt;left, right, top, bottom&lt;/b&gt; - the view extension will be placed
beside the relative view. In this case a &lt;samp&gt;ratio&lt;/samp&gt; must also
be defined.&lt;/ul&gt;
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="stack">
                  </enumeration>
                  <enumeration value="left">
                  </enumeration>
                  <enumeration value="right">
                  </enumeration>
                  <enumeration value="top">
                  </enumeration>
                  <enumeration value="bottom">
                  </enumeration>
                  <enumeration value="fast">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
         <attribute name="ratio" type="string">
            <annotation>
               <documentation>
                  the percentage of area within the relative view which will be donated to the view extension. If the view extension is a fast view, the ratio is the percentage of the workbench the fast view will cover when active. This must be defined as a floating point value and lie between 0.05 and 0.95.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="visible" type="boolean">
            <annotation>
               <documentation>
                  whether the view is initially visible when the perspective is opened.  This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used.
If this attribute is not used, the view will be initially visible by default.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="closeable" type="boolean">
            <annotation>
               <documentation>
                  whether the view is closeable in the target perspective. This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used.  If this attribute is not used, the view will be closeable, unless the perspective itself is marked as fixed.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="moveable" type="boolean">
            <annotation>
               <documentation>
                  whether the view is moveable.  A non-moveable view cannot be moved either within the same folder, or moved between folders in the perspective.  This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used.
If this attribute is not used, the view will be moveable, unless the perspective itself is marked as fixed.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="standalone" type="boolean">
            <annotation>
               <documentation>
                  whether the view is a standalone view.  A standalone view cannot be docked together with others in the same folder.  This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used.  This attribute is ignored if the relationship attribute is &quot;fast&quot; or &quot;stacked&quot;.  If this attribute is not used, the view will be a regular view, not a standalone view (default is &quot;false&quot;).
               </documentation>
            </annotation>
         </attribute>
         <attribute name="showTitle" type="boolean">
            <annotation>
               <documentation>
                  whether the view&apos;s title is shown.  This attribute should have a value of &quot;true&quot; or &quot;false&quot; if used.  This attribute only applies to standalone views.  If this attribute is not used, the view&apos;s title will be shown (default is &quot;true&quot;).
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of a perspective extension (note the subelements and the way attributes are used):
&lt;p&gt;
&lt;pre&gt;
    &lt;extension point=&quot;org.eclipse.ui.perspectiveExtensions&quot;&gt; 
        &lt;perspectiveExtension 
            targetID=&quot;org.eclipse.ui.resourcePerspective&quot;&gt; 
            &lt;actionSet id=&quot;org.eclipse.jdt.ui.JavaActionSet&quot;/&gt; 
            &lt;viewShortcut id=&quot;org.eclipse.jdt.ui.PackageExplorer&quot;/&gt; 
            &lt;newWizardShortcut id=&quot;org.eclipse.jdt.ui.wizards.NewProjectCreationWizard&quot;/&gt; 
            &lt;perspectiveShortcut id=&quot;org.eclipse.jdt.ui.JavaPerspective&quot;/&gt; 
            &lt;view id=&quot;org.eclipse.jdt.ui.PackageExplorer&quot; 
                relative=&quot;org.eclipse.ui.views.ResourceNavigator&quot; 
                relationship=&quot;stack&quot;/&gt; 
            &lt;view id=&quot;org.eclipse.jdt.ui.TypeHierarchy&quot; 
                relative=&quot;org.eclipse.ui.views.ResourceNavigator&quot; 
                relationship=&quot;left&quot; 
                ratio=&quot;0.50&quot;/&gt; 
        &lt;/perspectiveExtension&gt; 
    &lt;/extension&gt; 
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;
In the example above, an action set, view shortcut, 
new wizard shortcut, and perspective shortcut are 
contributed to the initial contents of the 
Resource Perspective.  In addition, the 
Package Explorer view is stacked on the 
Resource Navigator and the Type Hierarchy View is 
added beside the Resource Navigator. 
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The items defined within the perspective extension are contributed to the initial contents of the target perspective.  Following this, the user may remove any contribution or add others to a perspective from within the workbench user interface.
      </documentation>
   </annotation>

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

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2002, 2004 IBM Corporation and others.&lt;br&gt;
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>
