<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.rephraserengine.ui.refactoring" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.rephraserengine.ui.refactoring" id="refactorings" name="Refactorings"/>
      </appInfo>
      <documentation>
         Allows plug-ins to contribute to the Refactor menu.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <choice minOccurs="0" maxOccurs="1">
               <element ref="resourceFilter"/>
            </choice>
            <choice minOccurs="1" maxOccurs="unbounded">
               <element ref="group"/>
               <element ref="submenu"/>
               <element ref="resourceRefactoring"/>
               <element ref="command"/>
               <element ref="editorRefactoring"/>
            </choice>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="resourceRefactoring">
      <complexType>
         <attribute name="class" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.rephraserengine.core.refactorings.IResourceRefactoring"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="label" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="command" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="inputPage" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.rephraserengine.ui.refactoring.CustomUserInputPage:"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="require_env" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="editorRefactoring">
      <complexType>
         <attribute name="class" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.rephraserengine.core.refactorings.IEditorRefactoring"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="label" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="command" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="inputPage" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.rephraserengine.ui.refactoring.CustomUserInputPage:"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="require_env" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="group">
      <complexType>
         <sequence>
            <choice minOccurs="1" maxOccurs="unbounded">
               <element ref="command"/>
               <element ref="resourceRefactoring"/>
               <element ref="editorRefactoring"/>
               <element ref="submenu"/>
            </choice>
         </sequence>
      </complexType>
   </element>

   <element name="submenu">
      <complexType>
         <sequence>
            <choice minOccurs="1" maxOccurs="unbounded">
               <element ref="group"/>
               <element ref="submenu"/>
               <element ref="resourceRefactoring"/>
               <element ref="command"/>
               <element ref="editorRefactoring"/>
            </choice>
         </sequence>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="command">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.ui.commands/command/@id"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="resourceFilter">
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.rephraserengine.core.refactorings.IResourceFilter"/>
               </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;extension
         point=&quot;org.eclipse.rephraserengine.ui.refactoring.refactorings&quot;&gt;

      &lt;!-- The resource filter determines what must be selected for these refactorings to be visible --&gt;
      &lt;resourceFilter class=&quot;org.eclipse.rephraserengine.examples.text.TextFileResourceFilter&quot; /&gt;

      &lt;!-- Each group defines a new (separated) section in the Refactor menu --&gt;
      &lt;group&gt;

         &lt;!-- A resource refactoring which uses an auto-generated user interface --&gt;
         &lt;resourceRefactoring
            class=&quot;org.eclipse.rephraserengine.examples.text.ConvertTabsToSpacesRefactoring&quot; /&gt;

         &lt;!-- An editor refactoring which uses an auto-generated user interface --&gt;
         &lt;editorRefactoring
             class=&quot;org.eclipse.photran.internal.core.refactoring.MakePrivateEntityPublicRefactoring&quot; /&gt;

         &lt;!-- Same as previous, except the given label (&quot;Increase Visibility&quot;) will appear in the menu;
              when the label attribute is absent, the label will be whatever is returned by the refactoring&apos;s
              #getName method --&gt;
         &lt;editorRefactoring
             label=&quot;Increase Visibility&quot;
             class=&quot;org.eclipse.photran.internal.core.refactoring.MakePrivateEntityPublicRefactoring&quot; /&gt;

         &lt;!-- An editor refactoring which uses a custom user interface --&gt;
         &lt;editorRefactoring
             class=&quot;org.eclipse.photran.internal.core.refactoring.AddOnlyToUseStmtRefactoring&quot;
             inputPage=&quot;org.eclipse.photran.internal.refactoring.ui.AddOnlyToUseStmtInputPage&quot; /&gt;

         &lt;!-- A command which is contributed as an editor refactoring --&gt;
         &lt;!-- Note that this is the only way to give a refactoring a key binding --&gt;
         &lt;editorRefactoring command=&quot;org.eclipse.photran.ui.RenameRefactoringCommand&quot; /&gt;

         &lt;!-- An editor refactoring which only appears in the menu when the
              PHOTRAN_INCLUDE_TEST_REFACTORINGS environment variable is set to a non-null value --&gt;
         &lt;editorRefactoring
             require_env=&quot;PHOTRAN_INCLUDE_TEST_REFACTORINGS&quot;
             class=&quot;org.eclipse.photran.internal.core.refactoring.AddEmptySubprogramRefactoring&quot; /&gt;

      &lt;/group&gt;
      &lt;!-- A submenu defines a pop-out menu with the given name --&gt;
      &lt;submenu name=&quot;&amp;amp;Submenu&quot;&gt;
         &lt;resourceRefactoring
            class=&quot;org.eclipse.rephraserengine.examples.text.ConvertTabsToSpacesRefactoring&quot; /&gt;
      &lt;/submenu&gt;
   &lt;/extension&gt;
      </documentation>
   </annotation>




</schema>
