<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.common.snippets">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.wst.common.snippets" id="SnippetContributions" name="Snippets View Contributions Extension"/>
      </appInfo>
      <documentation>
         Contributions to be shown in the Snippets view. Plugins may contribute new categories and items into those categories that have custom behavior when dropped onto an editor or certain views.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="category" 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="category">
      <annotation>
         <documentation>
            Defines a category within the Snippets model, represented as a drawer in the Snippets view.  Drawers are used to categorize items much like a simple filing cabinet.  Categories contributed without any items within them will not be loaded into the Snippets model.  Categories without specific file types or content types will always have their drawers default to shown if the view is managing drawers according to the active editor.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="item" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="description" type="string">
            <annotation>
               <documentation>
                  A verbose label to show to the user.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="smallicon" type="string">
            <annotation>
               <documentation>
                  The small icon to show for this category.  The value of this attributes specifies a path relative to the plugin&apos;s installation folder.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  A unique ID for this category.  It will be used exactly as supplied within the Snippets model.  It is recommended that the plugin ID be used to prefix any categories contributed.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="label" type="string" use="required">
            <annotation>
               <documentation>
                  A brief label to show to the user.
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="largeicon" type="string">
            <annotation>
               <documentation>
                  The large icon to show for this category.  The value of this attributes specifies a path relative to the plugin&apos;s installation folder.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="extensions" type="string">
            <annotation>
               <documentation>
                  A list of filename extensions identical to that used to register editors.  If the Snippets View has its drawer visibility tied to the active editor, the drawer will be hidden unless the filename from the active editor matches a value from this attribute&apos;s value.  More than one value may be specified if separated by commas.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="contenttypes" type="string">
            <annotation>
               <documentation>
                  A list of content types.  If the Snippets View has its drawer visibility tied to the active editor, the drawer will be hidden unless the input from the active editor matches a value from this attribute&apos;s value.  More than one value may be specified if separated by commas.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="item">
      <annotation>
         <documentation>
            Individual snippet item for the Snippets view. Contains text and information to help control and customize the related drag and drop behavior.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="content"/>
            <element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="class" type="string">
            <annotation>
               <documentation>
                  An implementor of org.eclipse.wst.common.snippets.core.ISnippetsInsertion, it controls most of the interaction between the Snippets view and the rest of the workbench.  It may be asked to insert the item into an editor by itself or provide information to control the Snippets view&apos;s drag and drop behavior.  When one is not specified, org.eclipse.wst.common.snippets.insertions.VariableInsertion will be used.  It provides querying for user-supplied values for variables and a simple text preview pane when inserting text into an editor.  For drag and drop, it provides a SWT Transfer type that is usually associated with org.eclipse.wst.common.snippets.dnd.VariableTextDropAction.  This drop action class will open the same variable querying and preview capable dialog when the OS-level drag and drop operation is completed.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="description" type="string">
            <annotation>
               <documentation>
                  A verbose label to show to the user.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="smallicon" type="string">
            <annotation>
               <documentation>
                  The small icon to show for this item.  The value of this attributes specifies a path relative to the plugin&apos;s installation folder.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  A unique ID for this item.  It will be used exactly as supplied within the Snippets model.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="label" type="string" use="required">
            <annotation>
               <documentation>
                  A brief label to show to the user.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="largeicon" type="string">
            <annotation>
               <documentation>
                  The large icon to show for this item.  The value of this attributes specifies a path relative to the plugin&apos;s installation folder.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="content" type="string">
      <annotation>
         <documentation>
            Specifies the raw data for this Snippets item, usually as a CDATA section.  The insertion object and editor must both understand how to manipulate this data.  The default implementations understand embedded variable markers.
         </documentation>
      </annotation>
   </element>

   <element name="variable">
      <annotation>
         <documentation>
            A marker describing a replaceable section of the content.  The user should be asked for the value to use whenever Snippets is inserting the parent Item.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="default" type="string">
            <annotation>
               <documentation>
                  The variable&apos;s default value.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="description" type="string">
            <annotation>
               <documentation>
                  The description of this variable.  With the default insertion class, it will be shown in a description pane when the variable is selected.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  A unique ID for this variable.  It will be used exactly as supplied within the Snippets model.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  The label to show to the user.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;pre&gt;
   &lt;extension
         point=&quot;org.eclipse.wst.common.snippets.SnippetContributions&quot;&gt;
      &lt;category
            smallicon=&quot;icons/tag-jsp.gif&quot;
            label=&quot;JSP&quot;
            description=&quot;Java Server Pages&quot;
            id=&quot;org.eclipse.wst.jsp.category0&quot;
            contenttypes=&quot;org.eclipse.wst.jsp.core.jspsource&quot;
            extensions=&quot;*.jsp, *.jsf, *.jspf&quot;&gt;
        &lt;item
              smallicon=&quot;icons/tag-generic.gif&quot;
              label=&quot;%jsp_hidden_comment&quot;
              id=&quot;org.eclipse.wst.jsp.jsp_hidden_comment&quot;&gt;
           &lt;content&gt;
              %jsp_hidden_comment_content
           &lt;/content&gt;
        &lt;/item&gt;
        &lt;item
              label=&quot;%jsp_page_directive&quot;
              id=&quot;org.eclipse.wst.jsp.jsp_page_directive&quot;&gt;
           &lt;content&gt;
              %jsp_page_directive_content
           &lt;/content&gt;
        &lt;/item&gt;
        &lt;item
              smallicon=&quot;icons/jsptaglib.gif&quot;
              label=&quot;%jsp_taglib_directive&quot;
              class=&quot;org.eclipse.wst.common.snippets.insertions.PrependInsertion&quot;
              id=&quot;org.eclipse.wst.jsp.jsp_taglib_directive&quot;&gt;
           &lt;content&gt;
              &lt;![CDATA[ &lt;%@taglib uri=&quot;$uri&quot; prefix=&quot;$prefix&quot; %&gt; ]]&gt;
           &lt;/content&gt;
           &lt;variable
                 description=&quot;%jsp_taglib_directive_uri&quot;
                 id=&quot;uri&quot;&gt;
           &lt;/variable&gt;
           &lt;variable
                 default=&quot;mylib&quot;
                 description=&quot;%jsp_taglib_directive_prefix&quot;
                 id=&quot;prefix&quot;&gt;
           &lt;/variable&gt;
        &lt;/item&gt;
      &lt;/category&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

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

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         The supplied implementation of the Snippets view requires the Graphical Editing Framework and Structured Source Editing components.
      </documentation>
   </annotation>

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