<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.common.snippets" xmlns="http://www.w3.org/2001/XMLSchema">
<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">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <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>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </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.ui.ISnippetInsertion, although subclassing org.eclipse.wst.common.snippets.ui.DefaultSnippetInsertion is encouraged.  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.ui.DefaultSnippetInsertion will be used.  It provides querying for user-supplied values for variables and a simple text preview pane when inserting text into an editor.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="description" type="string">
            <annotation>
               <documentation>
                  A verbose label to show to the user.
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </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>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </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>
         <appInfo>
            <meta.element translatable="true"/>
         </appInfo>
         <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>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </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>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </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="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, 2010 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 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-2.0/&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
