<?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>
            </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>
            </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>
            </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>
            </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>
      </complexType>
   </element>

   <element name="description" type="string">
      <annotation>
         <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 not 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, 2003 IBM Corporation and others.&lt;br&gt;
All rights reserved. This program and the accompanying materials are made 
available under the terms of the Common Public License v1.0 which accompanies 
this distribution, and is available at 
&lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
