<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ui.cheatsheets" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appinfo>
         <meta.schema plugin="org.eclipse.ui.cheatsheets" id="cheatSheetContent" name="Cheat Sheet Content"/>
      </appinfo>
      <documentation>
         This extension point is used to register cheat sheet content contributions. Cheat sheets appear as choices from the &quot;Help&quot; menu or from within the cheat sheet view, and are typically used to aid a user through a series of comlex tasks to accomplish an overall goal.
&lt;p&gt;
The cheat sheets are organized into categories which usually reflect a particular problem domain.  For instance, a Java oriented plug-in may define a category called &quot;Java&quot; which is appropriate for cheat sheets that would aid a user with any of the Java tools.  The categories defined by one plug-in can be referenced by other plug-ins using the category attribute of a cheatsheet element. Uncategorized cheat sheets, as well as cheat sheets with invalid category paths, will end up in an &quot;Other&quot; category. 
&lt;p&gt;
Cheat sheets may optionally specify a description subelement whose body should contain short text about the cheat sheet.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appinfo>
            <meta.element />
         </appinfo>
      </annotation>
      <complexType>
         <choice minOccurs="1" maxOccurs="unbounded">
            <element ref="category"/>
            <element ref="cheatsheet"/>
            <element ref="taskEditor"/>
            <element ref="taskExplorer"/>
         </choice>
         <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="category">
      <annotation>
         <appinfo>
            <meta.element labelAttribute="name"/>
         </appinfo>
         <documentation>
            A category element in the cheatsheetContent extension point creates a new category in the cheat sheet menu.
The cheat sheet menu is available from the help menu in the workbench.
If a new category is specified, cheat sheets may be targeted to that category and will appear under it in the 
cheat sheet selection dialog.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique name that can be used to identify this category
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  a translatable name of the category that will be used in the dialog box
               </documentation>
            </annotation>
         </attribute>
         <attribute name="parentCategory" type="string">
            <annotation>
               <documentation>
                  a path to another category if this category should be added as a child
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="cheatsheet">
      <annotation>
         <appinfo>
            <meta.element labelAttribute="name"/>
         </appinfo>
         <documentation>
            A cheatsheet element is put into the cheatsheetContent extension point if there is a cheat sheet to be contributed to the 
workbench.  A cheat sheet element must specify an id, a translatable name to appear in the selection options, a category id
to specify which category this cheat sheet will be included in, and a content file.
The cheat sheet content file is an XML file that describes the steps and actions that the cheat sheet has.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="description" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique name that can be used to identify this cheat sheet
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  a translatable name of the cheat sheet that will be used in the help menu and the selection dialog box
               </documentation>
            </annotation>
         </attribute>
         <attribute name="category" type="string">
            <annotation>
               <documentation>
                  a slash-delimited path (&apos;/&apos;) of category IDs. Each token in the
path must represent a valid category ID previously defined
by this or some other plug-in. If omitted, the wizard will be
added to the &quot;Other&quot; category.
               </documentation>
               <appinfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.ui.cheatsheets.cheatSheetContent/category/@id"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="contentFile" type="string">
            <annotation>
               <documentation>
                  the path of a cheat sheet content file. The content file is an XML file that contains the specifics of the cheat sheet (&lt;a href=&quot;cheatSheetContentFileSpec.html&quot;&gt;cheat sheet content file format specification)&lt;/a&gt;.
The content file is parsed at run time by the cheat sheet framework. Based on the settings in this file, a certain number of steps, actions, descriptions, and help links are shown to the user when the cheat sheet is opened. The path is interpreted as relative to the plug-in that declares the extension; the path may include special variables. In particular, use &quot;$nl$&quot; as the first segment of the path to indicate that there are locale-specific translations of the content file in subdirectories below &quot;nl/&quot;. For more detail about the special variables, you can read the Java API document for &lt;a href=&quot;../api/org/eclipse/core/runtime/Platform.html#find&quot;&gt;Platform.find&lt;/a&gt;.
               </documentation>
               <appinfo>
                  <meta.attribute kind="resource"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="listener" type="string">
            <annotation>
               <documentation>
                  listener is a fully qualified name of a Java class which must subclass &lt;code&gt;org.eclipse.ui.cheatsheets.CheatSheetListener&lt;/code&gt;.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="composite" type="boolean" use="default" value="false">
            <annotation>
               <documentation>
                  Since Eclipse 3.2 a new kind of cheatsheet, a composite cheatsheet was introduced. A composite cheatsheet manages a set of tasks, each task can be a simple cheatsheet or other kind of task.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="description" type="string">
      <annotation>
         <documentation>
            a short description of the cheat sheet
         </documentation>
      </annotation>
   </element>

   <element name="taskEditor">
      <annotation>
         <appinfo>
            <meta.element labelAttribute="id"/>
         </appinfo>
         <documentation>
            This extension point is provisional, being based on the provisional API class TaskEditor. 

The taskEditor extension point allows for custom UI to appear in the editor pane of a composite cheatsheet. Any task in a compostite cheatsheet whose kind matches the id of this extension will use the class defined in this extension point to create the editor area.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  An id which must be unique among task editors.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  A class which implements a task editor
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.ui.cheatsheets.ITaskEditor"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="icon" type="string" use="required">
            <annotation>
               <documentation>
                  The icon which will be displayed in the task explorer for a task which uses this kind of editor.
               </documentation>
               <appinfo>
                  <meta.attribute kind="resource"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="taskExplorer">
      <annotation>
         <appinfo>
            <meta.element labelAttribute="id"/>
         </appinfo>
         <documentation>
            This extension point is provisional, being based on the provisional API class TaskExplorer. 

This extension point allows for the contribution of a task explorer which will be used when opening a composite cheatsheet.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The id of this explorer which must be unique among task explorer ids. If a composite cheatsheet has the explorerId set to this id, this explorer will be displayed in the task explorer area of a composite cheatsheet.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string">
            <annotation>
               <documentation>
                  A class which implements ITaskExplorer. The class must display the tasks in the composite cheatsheet and allow the user to select the tasks to be displayed in the editor.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.ui.cheatsheets.ITaskExplorer"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  An icon to be used in the dropdown menu which allows for switching between explorers.
               </documentation>
               <appinfo>
                  <meta.attribute kind="resource"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
               <appinfo>
                  <meta.attribute translatable="true"/>
               </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>
         Here is a sample usage of the cheatSheetContent extension point:
&lt;p&gt;
&lt;pre&gt;
&lt;extension point=&quot;org.eclipse.ui.cheatsheets.cheatSheetContent&quot;&gt;
  &lt;category
     name=&quot;Example category&quot;
     id=&quot;com.example.category&quot;&gt;
  &lt;/category&gt;
  &lt;cheatsheet
     name=&quot;Example cheat sheet&quot;
     category=&quot;com.example.category&quot;
     id=&quot;com.example.cheatSheet&quot;
     contentFile=&quot;ExampleCheatSheet.xml&quot;&gt;
         &lt;description&gt;
           This is a descriptive bit of text for my cheat sheet description.
         &lt;/description&gt;
  &lt;/cheatsheet&gt;
&lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="apiInfo"/>
      </appinfo>
      <documentation>
         For further details see the spec for the org.eclipse.ui.cheatsheets API package.
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="implementation"/>
      </appinfo>
      <documentation>
         There are no built-in cheat sheets.
      </documentation>
   </annotation>

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