<?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="newWizards" name="Creation Wizards"/>
      </appInfo>
      <documentation>
         This extension point is used to register resource creation wizard extensions. Creation wizards appear as choices within the &quot;New Dialog&quot;, and are typically used to create folders and files. 
&lt;p&gt;
In the &quot;New Dialog&quot;, wizards are organized into categories which usually reflect a particular problem domain.  For instance, a Java oriented plugin may define a category called &quot;Java&quot; which is appropriate for &quot;Class&quot; or &quot;Package&quot; creation wizards.  The categories defined by one plug-in can be referenced by other plug-ins using the category attribute. Uncategorized wizards, as well as wizards with invalid category paths, will end up in an &quot;Other&quot; category. 
&lt;/p&gt;

&lt;p&gt;
Wizards may optionally specify a description subelement whose body should contain short text about the wizard.
&lt;/p&gt;
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <choice minOccurs="0" maxOccurs="unbounded">
            <element ref="category"/>
            <element ref="wizard"/>
            <element ref="primaryWizard"/>
         </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>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="category">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="name"/>
         </appInfo>
      </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>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </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="wizard">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="name" icon="icon"/>
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="description" minOccurs="0" maxOccurs="1"/>
            <element ref="selection" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique name that can be used to identify this wizard
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  a translatable name of the wizard that will be used in the dialog box
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  a relative path of an icon that will be used together with the name to represent the wizard 
as one of the choices in the creation dialog box.
               </documentation>
               <appInfo>
                  <meta.attribute kind="resource"/>
               </appInfo>
            </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>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified name of the Java class implementing &lt;samp&gt;org.eclipse.ui.INewWizard&lt;/samp&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jface.wizard.Wizard:org.eclipse.ui.INewWizard"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="project" type="boolean">
            <annotation>
               <documentation>
                  an optional attribute indicating the wizard will create an IProject resource.
Also causes the wizard to appear as a choice within the &quot;New Project Dialog&quot;.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="finalPerspective" type="string">
            <annotation>
               <documentation>
                  an optional attribute which identifies a perspective to activate when IProject resource creation is finished.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="preferredPerspectives" type="string">
            <annotation>
               <documentation>
                  an optional attribute specifying a comma-separated list of perspective IDs.  If the current perspective is in this list, then no perspective activation occurs when IProject resource creation is finished.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="helpHref" type="string">
            <annotation>
               <documentation>
                  a help url that can describe this wizard in detail.
&lt;p&gt;
Since 3.0
&lt;/p&gt;
               </documentation>
            </annotation>
         </attribute>
         <attribute name="descriptionImage" type="string">
            <annotation>
               <documentation>
                  a larger image that can help describe this wizard.
&lt;p&gt;
Since 3.0
&lt;/p&gt;
               </documentation>
               <appInfo>
                  <meta.attribute kind="resource"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="canFinishEarly" type="boolean">
            <annotation>
               <documentation>
                  whether the wizard is capable of finishing without ever showing pages to the user.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="hasPages" type="boolean">
            <annotation>
               <documentation>
                  whether the wizard provides any pages.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="description" type="string">
      <annotation>
         <appInfo>
            <meta.element translatable="true"/>
         </appInfo>
         <documentation>
            an optional subelement whose body contains a short text describing what the wizard will do when started
         </documentation>
      </annotation>
   </element>

   <element name="selection">
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified class name.  If each object in the workbench selection implements this interface the selection will be passed to the wizard.  Otherwise, an empty selection is passed
               </documentation>
               <appInfo>
                  <meta.attribute kind="java"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name filter.  Each object in the workbench selection must match the name filter to be passed to the wizard
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="primaryWizard">
      <annotation>
         <documentation>
            a means of declaring that a wizard is &quot;primary&quot; in the UI.  A primary wizard is emphasized in the new wizard dialog.  Please note that this element is not intended to be used by plug in developers!  This element exists so that product managers may emphasize a set of wizards for their products.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the id of a wizard that should be made primary.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         Following is an example of creation wizard configuration: 
&lt;p&gt;
&lt;pre&gt;
   &lt;extension point=&quot;org.eclipse.ui.newWizards&quot;&gt; 
      &lt;category 
        id=&quot;com.xyz.XYZ&quot; 
        name=&quot;XYZ Wizards&quot;&gt; 
      &lt;/category&gt; 
      &lt;category 
        id=&quot;com.xyz.XYZ.Web&quot; 
        name=&quot;Web Wizards&quot; 
        parentCategory=&quot;com.xyz.XYZ&quot;&gt; 
      &lt;/category&gt; 
      &lt;wizard 
          id=&quot;com.xyz.wizard1&quot; 
          name=&quot;XYZ artifact&quot; 
          category=&quot;com.xyz.XYZ/com.xyz.XYZ.Web&quot; 
          icon=&quot;./icons/XYZwizard1.gif&quot; 
          class=&quot;com.xyz.XYZWizard1&quot;&gt; 
          &lt;description&gt; 
              Create a simple XYZ artifact and set initial content 
          &lt;/description&gt; 
           &lt;selection class=&quot;org.eclipse.core.resources.IResource&quot;/&gt;          
      &lt;/wizard&gt; 
   &lt;/extension&gt; 
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The value of the class attribute must represent a class 
that implements &lt;samp&gt;org.eclipse.ui.INewWizard&lt;/samp&gt;. 
If the wizard is created from within the 
New Wizard it will be inserted into the existing wizard.  
If the wizard is launched as a shortcut 
(from the File New menu or a toolbar button) it will 
appear standalone as a separate dialog box.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         The workbench comes with wizards for creating empty 
resources of the following types: 
project, folder and file. These wizards are registered 
using the same mechanism as described above. 
Additional wizards may also appear, subject to 
particular platform installation.
      </documentation>
   </annotation>

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