<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jst.jsf.common.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jst.jsf.common.ui" id="introductionPage" name="Introduction Page"/>
      </appInfo>
      <documentation>
         The purpose of this extension point is to allow plug-ins to describe the contents and links on a introduction page of an editor.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="introductionpage"/>
         </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" use="required">
            <annotation>
               <documentation>
                  identifier of the extension instance, this should be the same as the editor id.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name of the extension instance. Normally this is the editor name.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="introductionpage">
      <annotation>
         <documentation>
            The details for an introduction page for a specific plugins editor
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="introductionelement" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  The name of the page.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="description" type="string">
            <annotation>
               <documentation>
                  A description for the page.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="introductionelement">
      <annotation>
         <documentation>
            An element that make up a section of the page. Elements can contain Headers, Hyperlinks, Icons and text.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  An icon to display in the element. The icon should be 72x72 and will appear to the left of the headers, hyperlinks and text
               </documentation>
               <appInfo>
                  <meta.attribute kind="resource"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="heading" type="string">
            <annotation>
               <documentation>
                  A short heading for the element (optional)
               </documentation>
            </annotation>
         </attribute>
         <attribute name="text" type="string">
            <annotation>
               <documentation>
                  The text description for the element
               </documentation>
            </annotation>
         </attribute>
         <attribute name="hyperlink" type="string">
            <annotation>
               <documentation>
                  A hyperlink associated with the element. The hyperlink would normally execute the hyperlinkaction action
               </documentation>
            </annotation>
         </attribute>
         <attribute name="hyperlinkaction" type="string">
            <annotation>
               <documentation>
                  The action associated with the hyperlink. This is an action that will be executed when the hyperlink is selected
               </documentation>
               <appInfo>
                  <meta.attribute kind="java"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="actionparameters" type="string">
            <annotation>
               <documentation>
                  Can be used to pass one or more parameters to the hyperlink action. Parameter must be space separated (optional)
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         1.0.0
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;extension
         id=&quot;org.eclipse.jst.jsf.facesconfig.ui.pageflow.PageflowEditor&quot;
         name=&quot;%pageflow.editor.intro.name&quot;
         point=&quot;org.eclipse.jst.jsf.facesconfig.ui.page.introductionPage&quot;&gt;
      &lt;introductionpage
            name=&quot;%pageflow.editor.intro.name&quot;
            description=&quot;%port.editor.intro.description&quot;&gt;
         &lt;introductionelement
               icon=&quot;icons/pageflow_72.gif&quot;
               heading=&quot;%pageflow.editor.intro.heading&quot;
               text=&quot;%pageflow.editor.intro.description&quot;&gt;
         &lt;/introductionelement&gt;
         &lt;introductionelement
               actionparameters=&quot;Pageflow.designerCheatSheet&quot;
               icon=&quot;icons/tutorials_72.gif&quot;
               hyperlinkaction=&quot;org.eclipse.jst.jsf.common.ui.actions.LoadCheatSheetAction&quot;
               text=&quot;%pageflow.editor.intro.cheatsheets.text&quot;
               hyperlink=&quot;%pageflow.editor.intro.cheatsheets.link&quot;&gt;
         &lt;/introductionelement&gt;
         &lt;introductionelement
               actionparameters=&quot;http://www.eclipse.org&quot;
               icon=&quot;icons/overview_72.gif&quot;
               hyperlinkaction=&quot;org.eclipse.jst.jsf.common.ui.actions.LoadHelpAction&quot;
               text=&quot;%pageflow.editor.intro.help.text&quot;
               hyperlink=&quot;%pageflow.editor.intro.help.link&quot;&gt;
         &lt;/introductionelement&gt;
         &lt;introductionelement
               actionparameters=&quot;overview&quot;
               icon=&quot;icons/gotoeditor_72.gif&quot;
               hyperlinkaction=&quot;org.eclipse.jst.jsf.common.ui.actions.OpenPageAction&quot;
               text=&quot;%pageflow.editor.intro.start.text&quot;
               hyperlink=&quot;%pageflow.editor.intro.start.link&quot;&gt;
         &lt;/introductionelement&gt;
      &lt;/introductionpage&gt;
   &lt;/extension&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2004, 2006 Sybase, Inc. and others. &lt;br&gt;
 All rights reserved. This program and the accompanying materials &lt;br&gt;
 are made available under the terms of the Eclipse Public License v1.0 &lt;br&gt;
 which accompanies this distribution, and is available at &lt;br&gt;
 http://www.eclipse.org/legal/epl-v10.html &lt;br&gt;
 
  Contributors: &lt;br&gt;
      Sybase, Inc. - initial API and implementation &lt;br&gt;
      </documentation>
   </annotation>

</schema>
