<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.pde.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.pde.ui" id="pluginContent" name="Plug-in Content Wizards"/>
      </appInfo>
      <documentation>
         This extension point provides for contributing wizards that create additional content of the PDE plug-in
projects. After the plug-in manifest and key files have been
created, these wizards can be used to add more files and
extensions to the initial structure. A typical implementation
of this wizard would add content based on a parametrized
template customized based on the user choices in the wizard.
The goal is to arrive at a plug-in that is does something
useful right after the creation (e.g. contributes a view, 
an editor etc.).
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="wizard" minOccurs="0" 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="wizard">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="name" icon="icon"/>
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="description" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique name that will be used to identify this wizard.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  a translatable name that will be used in UI representation
of this wizard.
               </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 to visually 
represent the wizard.
               </documentation>
               <appInfo>
                  <meta.attribute kind="resource"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified name of a class which implements 
&lt;samp&gt;org.eclipse.pde.ui.IPluginContentWizard&lt;/samp&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jface.Wizard:org.eclipse.pde.IPluginContentWizard"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="category" type="string">
            <annotation>
               <documentation>
                  an optional tag that can be used to associate content wizards with different target projects.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="ui-content" type="boolean" use="default" value="true">
            <annotation>
               <documentation>
                  a flag that indicates if the wizard will contribute code with user interface content. This flag will affect which plug-in class will be picked since (UI plug-ins extend &lt;code&gt;AbstractUIPlugin&lt;/code&gt; class, while non-UI plug-ins extends &lt;code&gt;Plugin&lt;/code&gt; base class). Since many contributions to Eclipse have UI content, this attribute is &lt;code&gt;true&lt;/code&gt; by default.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="java" type="boolean" use="default" value="true">
            <annotation>
               <documentation>
                  a flag that indicates that the wizard will contribute Java content. Since most of the Eclipse plug-ins have Java code, the attribute is &lt;code&gt;true&lt;/code&gt; by default. Set it to &lt;code&gt;false&lt;/code&gt; if the plug-in will not have Java code (for example, documentation files only).
               </documentation>
            </annotation>
         </attribute>
         <attribute name="rcp" type="boolean" use="default" value="false">
            <annotation>
               <documentation>
                  a boolean flag indicating whether the wizard contributes a standalone fully-functioning rich client application.  If set to &lt;code&gt;true&lt;/code&gt;, the wizard will appear in the New Plug-in Project wizard only when the user chooses the Rich Client Application option.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="description" type="string">
      <annotation>
         <appInfo>
            <meta.element translatable="true"/>
         </appInfo>
         <documentation>
            Short description of this wizard.
         </documentation>
      </annotation>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of this extension point:
&lt;pre&gt;   
   &lt;extension point=&quot;org.eclipse.pde.ui.pluginContent&quot;&gt;
      &lt;wizard
         name=&quot;Example Plug-in Content Generator&quot;
         icon=&quot;icons/content_wizard.gif&quot;
         class=&quot;com.example.xyz.ContentGeneratorWizard&quot;
         id=&quot;com.example.xyz.ExampleContentGenerator&quot;&gt;
         &lt;description&gt;
            Adds a view and a preference page.
         &lt;/description&gt;
      &lt;/wizard&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         Wizards that plug into this extension point must
implement &lt;samp&gt;org.eclipse.pde.ui.IPluginContentWizard&lt;/samp&gt;
interface and is expected to extend &lt;code&gt;org.eclipse.jface.wizard.Wizard&lt;/code&gt;.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         PDE provides APIs for contributing content wizards based on customizable templates. A number of concrete wizards based on these templates is contributed by PDE UI itself.
      </documentation>
   </annotation>

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