<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jst.jsf.core" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jst.jsf.core" id="jsfFacetConfiguration" name="jsfFacetConfiguration"/>
      </appInfo>
      <documentation>
         This extension point is for adopter products wishing to disable the default configuration options on the JSF facet install page.   The extender becomes responsible for all configuration of the JSF facet.
&lt;p&gt;
When this extension is present and disabled is set:
&lt;ol&gt;
    &lt;li&gt;No configuration will occur:&lt;/li&gt;
&lt;ul&gt;
    &lt;li&gt;faces configuration file will not be created or modified&lt;/li&gt;
    &lt;li&gt;web application (web.xml) will not be updated&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt; The JSF Facet installation page will NOT display UI for, and the underlying data model will not contain: &lt;/li&gt;
&lt;ul&gt;
    &lt;li&gt;JSF Configuration File&lt;/li&gt;
    &lt;li&gt;JSF Servlet Name&lt;/li&gt;
    &lt;li&gt;JSF Servlet Classname&lt;/li&gt;
    &lt;li&gt;URL Mapping Patterns&lt;/li&gt;   
&lt;/ul&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;b&gt;Important:&lt;/b&gt; It will be necessary for any adopter using this mechanism to handle all faces-config creation/modification and web.xml updates for the JSF facet using a facet install listener.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence minOccurs="0" maxOccurs="1">
            <element ref="jsfFacetConfiguration"/>
         </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="jsfFacetConfiguration">
      <complexType>
         <attribute name="disabled" type="boolean" use="required">
            <annotation>
               <documentation>
                  if set true, the JSF Facet configuration UI will not display, and the configuration will not execute for either INSTALL or UNINSTALL operations.   This does not affect the library provider in any way.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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


   <annotation>
      <appInfo>
         <meta.section type="apiinfo"/>
      </appInfo>
      <documentation>
         &lt;b&gt;Provisional API&lt;/b&gt;
      </documentation>
   </annotation>


   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         /*******************************************************************************
 * Copyright (c) 2009 Oracle. 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 http://www.eclipse.org/legal/epl-v10.html.
 *
 * Contributors:
 *     Oracle - initial API and implementation
 ******************************************************************************/
      </documentation>
   </annotation>

</schema>
