<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
            attributeFormDefault="unqualified"
            elementFormDefault="qualified"
            targetNamespace="http://xmlns.jcp.org/xml/ns/javaee"
            version="2.2"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:include schemaLocation="javaee_7.xsd"/>

  <xsd:annotation>
    <xsd:documentation>

      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
      
      Copyright (c) 2011 - 2013 Oracle and/or its affiliates. All rights reserved.
      
      The contents of this file are subject to the terms of either the GNU
      General Public License Version 2 only ("GPL") or the Common Development
      and Distribution License("CDDL") (collectively, the "License").  You
      may not use this file except in compliance with the License.  You can
      obtain a copy of the License at
      https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
      or packager/legal/LICENSE.txt.  See the License for the specific
      language governing permissions and limitations under the License.
      
      When distributing the software, include this License Header Notice in each
      file and include the License file at packager/legal/LICENSE.txt.
      
      GPL Classpath Exception:
      Oracle designates this particular file as subject to the "Classpath"
      exception as provided by Oracle in the GPL Version 2 section of the License
      file that accompanied this code.
      
      Modifications:
      If applicable, add the following below the License Header, with the fields
      enclosed by brackets [] replaced by your own identifying information:
      "Portions Copyright [year] [name of copyright owner]"
      
      Contributor(s):
      If you wish your version of this file to be governed by only the CDDL or
      only the GPL Version 2, indicate your decision by adding "[Contributor]
      elects to include this software in this distribution under the [CDDL or GPL
      Version 2] license."  If you don't indicate a single choice of license, a
      recipient has the option to distribute your version of this file under
      either the CDDL, the GPL Version 2 or to extend the choice of license to
      its licensees as provided above.  However, if you add GPL Version 2 code
      and therefore, elected the GPL Version 2 license, then the option applies
      only if the new code is made subject to such option by the copyright
      holder.
      
    </xsd:documentation>
  </xsd:annotation>

  <xsd:annotation>
    <xsd:documentation>
      <![CDATA[[
      <p>The XML Schema for the JavaServer Faces Application
      Configuration File (Version 2.2).</p>
      
      <p>All JavaServer Faces configuration files must indicate
      the JavaServer Faces schema by indicating the JavaServer
      Faces namespace:</p>
      
      <p>http://xmlns.jcp.org/xml/ns/javaee</p>
      
      <p>and by indicating the version of the schema by
      using the version element as shown below:</p>
      
      <pre>&lt;faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="..."
      version="2.2"&gt;
      ...
      &lt;/faces-config&gt;</pre>
      
      <p>The instance documents may indicate the published
      version of the schema using xsi:schemaLocation attribute
      for javaee namespace with the following location:</p>
      
      <p>http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd</p>
      
      ]]>
    </xsd:documentation>
  </xsd:annotation>


<!-- **************************************************** -->

  <xsd:element name="faces-config"
               type="javaee:faces-configType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p>The "faces-config" element is the root of the configuration
        information hierarchy, and contains nested elements for all
        of the other configuration settings.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:unique name="faces-config-behavior-ID-uniqueness">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p>Behavior IDs must be unique within a document.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
      <xsd:selector xpath="javaee:behavior"/>
      <xsd:field xpath="javaee:behavior-id"/>
    </xsd:unique>
    <xsd:unique name="faces-config-converter-ID-uniqueness">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p>Converter IDs must be unique within a document.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
      <xsd:selector xpath="javaee:converter"/>
      <xsd:field xpath="javaee:converter-id"/>
    </xsd:unique>
    <xsd:unique name="faces-config-converter-for-class-uniqueness">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p>'converter-for-class' element values must be unique
          within a document.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
      <xsd:selector xpath="javaee:converter"/>
      <xsd:field xpath="javaee:converter-for-class"/>
    </xsd:unique>
    <xsd:unique name="faces-config-validator-ID-uniqueness">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p> Validator IDs must be unique within a document.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
      <xsd:selector xpath="javaee:validator"/>
      <xsd:field xpath="javaee:validator-id"/>
    </xsd:unique>
    <xsd:unique name="faces-config-managed-bean-name-uniqueness">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p> Managed bean names must be unique within a document.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
      <xsd:selector xpath="javaee:managed-bean"/>
      <xsd:field xpath="javaee:managed-bean-name"/>
    </xsd:unique>
  </xsd:element>


<!-- **************************************************** -->

  <xsd:complexType name="faces-configType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "faces-config" element is the root of the configuration
        information hierarchy, and contains nested elements for all
        of the other configuration settings.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0"
                maxOccurs="unbounded">
      <xsd:element name="application"
                   type="javaee:faces-config-applicationType"/>
      <xsd:element name="ordering"
                   type="javaee:faces-config-orderingType"/>
      <xsd:element name="absolute-ordering"
                   type="javaee:faces-config-absoluteOrderingType"
                   minOccurs="0"/>
      <xsd:element name="factory"
                   type="javaee:faces-config-factoryType"/>
      <xsd:element name="component"
                   type="javaee:faces-config-componentType"/>
      <xsd:element name="converter"
                   type="javaee:faces-config-converterType"/>
      <xsd:element name="managed-bean"
                   type="javaee:faces-config-managed-beanType"/>
      <xsd:element name="flow-definition"
                   type="javaee:faces-config-flow-definitionType"/>
      <xsd:element name="name"
                   type="javaee:java-identifierType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> <span class="changed_modified_2_2">The</span> "name" element 
            within the top level "faces-config"
            element declares the name of this application
            configuration resource.  Such names are used
            in the document ordering scheme specified in section
            JSF.11.4.6.</p>
            
            <p class="changed_added_2_2">This value is taken to be the 
            defining document id of any &lt;flow-definition&gt; elements 
            defined in this Application Configuration Resource file.  If this
            element is not specified, the runtime must take the empty string 
            as its value.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="navigation-rule"
                   type="javaee:faces-config-navigation-ruleType"/>
      <xsd:element name="protected-views"
                   type="javaee:faces-config-protected-viewsType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="referenced-bean"
                   type="javaee:faces-config-referenced-beanType"/>
      <xsd:element name="render-kit"
                   type="javaee:faces-config-render-kitType"/>
      <xsd:element name="lifecycle"
                   type="javaee:faces-config-lifecycleType"/>
      <xsd:element name="validator"
                   type="javaee:faces-config-validatorType"/>
      <xsd:element name="behavior"
                   type="javaee:faces-config-behaviorType"/>
      <xsd:element name="faces-config-extension"
                   type="javaee:faces-config-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:choice>
    <xsd:attribute name="metadata-complete"
                   type="xsd:boolean"
                   use="optional">
      <xsd:annotation>
        <xsd:documentation>

          The metadata-complete attribute defines whether this
          JavaServer Faces application is complete, or whether
          the class files available to this module and packaged with
          this application should be examined for annotations
          that specify configuration information.
          
          This attribute is only inspected on the application 
          configuration resource file located at "WEB-INF/faces-config.xml".
          The presence of this attribute on any application configuration
          resource other than the one located at "WEB-INF/faces-config.xml",
          including any files named using the javax.faces.CONFIG_FILES
          attribute, must be ignored.
          
          If metadata-complete is set to "true", the JavaServer Faces
          runtime must ignore any annotations that specify configuration
          information, which might be present in the class files
          of the application.
          
          If metadata-complete is not specified or is set to
          "false", the JavaServer Faces runtime must examine the class
          files of the application for annotations, as specified by
          the specification.
          
          If "WEB-INF/faces-config.xml" is not present, the JavaServer
          Faces runtime will assume metadata-complete to be "false".
          
          The value of this attribute will have no impact on
          runtime annotations such as @ResourceDependency or
          @ListenerFor.
          
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
    <xsd:attribute name="version"
                   type="javaee:faces-config-versionType"
                   use="required"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for faces-config.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-orderingType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Please see section JSF.11.4.6 for the specification of this element.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="after"
                   type="javaee:faces-config-ordering-orderingType"
                   minOccurs="0"/>
      <xsd:element name="before"
                   type="javaee:faces-config-ordering-orderingType"
                   minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-ordering-orderingType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> This element contains a sequence of "id" elements, each of which
        refers to an application configuration resource by the "id"
        declared on its faces-config element.  This element can also contain
        a single "others" element which specifies that this document comes
        before or after other documents within the application.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name"
                   type="javaee:java-identifierType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="others"
                   type="javaee:faces-config-ordering-othersType"
                   minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-ordering-othersType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> This element indicates that the ordering sub-element in which
        it was placed should take special action regarding the ordering
        of this application resource relative to other
        application configuration resources.  See section JSF.11.4.6
        for the complete specification.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-absoluteOrderingType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Only relevant if this is placed within the /WEB-INF/faces-config.xml.
        Please see section JSF.11.4.6 for the specification for details.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0"
                maxOccurs="unbounded">
      <xsd:element name="name"
                   type="javaee:java-identifierType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="others"
                   type="javaee:faces-config-ordering-othersType"
                   minOccurs="0"/>
    </xsd:choice>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-applicationType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "application" element provides a mechanism to define the
        various per-application-singleton implementation artifacts for
        a particular web application that is utilizing
        JavaServer Faces.  For nested elements that are not specified,
        the JSF implementation must provide a suitable default.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0"
                maxOccurs="unbounded">
      <xsd:element name="action-listener"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "action-listener" element contains the fully
            qualified class name of the concrete
            ActionListener implementation class that will be
            called during the Invoke Application phase of the
            request processing lifecycle.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="default-render-kit-id"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "default-render-kit-id" element allows the
            application to define a renderkit to be used other
            than the standard one.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="message-bundle"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The base name of a resource bundle representing
            the message resources for this application.  See
            the JavaDocs for the "java.util.ResourceBundle"
            class for more information on the syntax of
            resource bundle names.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="navigation-handler"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "navigation-handler" element contains the
            fully qualified class name of the concrete
            NavigationHandler implementation class that will
            be called during the Invoke Application phase
            of the request processing lifecycle, if the
            default ActionListener (provided by the JSF
            implementation) is used.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="view-handler"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "view-handler" element contains the fully
            qualified class name of the concrete ViewHandler
            implementation class that will be called during
            the Restore View and Render Response phases of the
            request processing lifecycle.  The faces
            implementation must provide a default
            implementation of this class.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="state-manager"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "state-manager" element contains the fully
            qualified class name of the concrete StateManager
            implementation class that will be called during
            the Restore View and Render Response phases of the
            request processing lifecycle.  The faces
            implementation must provide a default
            implementation of this class.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="el-resolver"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "el-resolver" element contains the fully
            qualified class name of the concrete
            javax.el.ELResolver implementation class
            that will be used during the processing of
            EL expressions.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="property-resolver"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "property-resolver" element contains the fully
            qualified class name of the concrete
            PropertyResolver implementation class that will
            be used during the processing of value binding
            expressions.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="variable-resolver"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "variable-resolver" element contains the fully
            qualified class name of the concrete
            VariableResolver implementation class that will
            be used during the processing of value binding
            expressions.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="resource-handler"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "resource-handler" element contains the
            fully qualified class name of the concrete
            ResourceHandler implementation class that
            will be used during rendering and decoding
            of resource requests The standard
            constructor based decorator pattern used for
            other application singletons will be
            honored.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="resource-library-contracts"
                   type="javaee:faces-config-application-resource-library-contractsType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">The "resource-library-contracts" element
            specifies the mappings between views in the application and resource
            library contracts that, if present in the application, must be made
            available for use as templates of the specified views.
            </p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="system-event-listener"
                   type="javaee:faces-config-system-event-listenerType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="locale-config"
                   type="javaee:faces-config-locale-configType"/>
      <xsd:element name="resource-bundle"
                   type="javaee:faces-config-application-resource-bundleType"/>
      <xsd:element name="application-extension"
                   type="javaee:faces-config-application-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="default-validators"
                   type="javaee:faces-config-default-validatorsType"/>
    </xsd:choice>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-application-resource-bundleType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The resource-bundle element inside the application element
        references a java.util.ResourceBundle instance by name
        using the var element.  ResourceBundles referenced in this
        manner may be returned by a call to
        Application.getResourceBundle() passing the current
        FacesContext for this request and the value of the var
        element below.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="base-name"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The fully qualified class name of the
            java.util.ResourceBundle instance.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="var"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The name by which this ResourceBundle instance
            is retrieved by a call to
            Application.getResourceBundle().</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-application-resource-library-contractsType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">The "resource-library-contracts" element
        specifies the mappings between views in the application and resource
        library contracts that, if present in the application, must be made
        available for use as templates of the specified views.
        </p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="contract-mapping"
                   type="javaee:faces-config-application-resource-library-contracts-contract-mappingType"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p classes="changed_added_2_2">Declare a mapping between a collection
            of views in the application and the list of contracts (if present in the application)
            that may be used as a source for templates and resources for those views.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-application-resource-library-contracts-contract-mappingType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">The "contract-mapping" element
        specifies the mappings between a collection of views in the application and resource
        library contracts that, if present in the application, must be made
        available for use as templates of the specified views.
        </p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="url-pattern"
                   type="javaee:url-patternType"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">The "url-pattern" element
            specifies the collection of views in this application that 
            are allowed to use the corresponding contracts.
            </p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="contracts"
                   type="javaee:string"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">The "contracts" element
            is a comma separated list of resource library contracts that,
            if available to the application, may be used by the views
            matched by the corresponding "url-pattern"
            </p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-application-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for application.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-factoryType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "factory" element provides a mechanism to define the
        various Factories that comprise parts of the implementation
        of JavaServer Faces.  For nested elements that are not
        specified, the JSF implementation must provide a suitable
        default.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0"
                maxOccurs="unbounded">
      <xsd:element name="application-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "application-factory" element contains the
            fully qualified class name of the concrete
            ApplicationFactory implementation class that will
            be called when
            FactoryFinder.getFactory(APPLICATION_FACTORY) is
            called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="exception-handler-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "exception-handler-factory" element contains the
            fully qualified class name of the concrete
            ExceptionHandlerFactory implementation class that will
            be called when
            FactoryFinder.getFactory(EXCEPTION_HANDLER_FACTORY)
            is called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="external-context-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "external-context-factory" element contains the
            fully qualified class name of the concrete
            ExternalContextFactory implementation class that will
            be called when
            FactoryFinder.getFactory(EXTERNAL_CONTEXT_FACTORY)
            is called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="faces-context-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "faces-context-factory" element contains the
            fully qualified class name of the concrete
            FacesContextFactory implementation class that will
            be called when
            FactoryFinder.getFactory(FACES_CONTEXT_FACTORY)
            is called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="facelet-cache-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "facelet-cache-factory" element contains the
            fully qualified class name of the concrete
            FaceletCacheFactory implementation class that will
            be called when
            FactoryFinder.getFactory(FACELET_CACHE_FACTORY)
            is called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="partial-view-context-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "partial-view-context-factory" element contains the
            fully qualified class name of the concrete
            PartialViewContextFactory implementation class that will
            be called when FactoryFinder.getFactory
            (FactoryFinder.PARTIAL_VIEW_CONTEXT_FACTORY) is called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="lifecycle-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "lifecycle-factory" element contains the fully
            qualified class name of the concrete LifecycleFactory
            implementation class that will be called when
            FactoryFinder.getFactory(LIFECYCLE_FACTORY) is called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="view-declaration-language-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "view-declaration-language-factory" element contains
            the fully qualified class name of the concrete
            ViewDeclarationLanguageFactory
            implementation class that will be called when
            FactoryFinder.getFactory(VIEW_DECLARATION_FACTORY) is called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="tag-handler-delegate-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "tag-handler-delegate-factory" element contains
            the fully qualified class name of the concrete
            ViewDeclarationLanguageFactory
            implementation class that will be called when
            FactoryFinder.getFactory(TAG_HANDLER_DELEGATE_FACTORY) is called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="render-kit-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "render-kit-factory" element contains the fully
            qualified class name of the concrete RenderKitFactory
            implementation class that will be called when
            FactoryFinder.getFactory(RENDER_KIT_FACTORY) is
            called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="visit-context-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "visit-context-factory" element contains the fully
            qualified class name of the concrete VisitContextFactory
            implementation class that will be called when
            FactoryFinder.getFactory(VISIT_CONTEXT_FACTORY) is
            called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="flash-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2"> The "flash-factory" element contains the
            fully qualified class name of the concrete
            FaceletFactory implementation class that will
            be called when
            FactoryFinder.getFactory(FLASH_FACTORY) is
            called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="flow-handler-factory"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "flow-handler-factory" element contains the
            fully qualified class name of the concrete
            FlowHandlerFactory implementation class that will
            be called when
            FactoryFinder.getFactory(FLOW_HANDLER_FACTORY) is
            called.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="factory-extension"
                   type="javaee:faces-config-factory-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:choice>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-factory-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for factory.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-attributeType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "attribute" element represents a named, typed, value
        associated with the parent UIComponent via the generic
        attributes mechanism.</p>
        
        <p>Attribute names must be unique within the scope of the parent
        (or related) component.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="attribute-name"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "attribute-name" element represents the name under
            which the corresponding value will be stored, in the
            generic attributes of the UIComponent we are related
            to.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="attribute-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "attribute-class" element represents the Java type
            of the value associated with this attribute name.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="default-value"
                   type="javaee:faces-config-default-valueType"
                   minOccurs="0"/>
      <xsd:element name="suggested-value"
                   type="javaee:faces-config-suggested-valueType"
                   minOccurs="0"/>
      <xsd:element name="attribute-extension"
                   type="javaee:faces-config-attribute-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-attribute-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for attribute.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-componentType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "component" element represents a concrete UIComponent
        implementation class that should be registered under the
        specified type identifier, along with its associated
        properties and attributes.  Component types must be unique
        within the entire web application.</p>
        
        <p>Nested "attribute" elements identify generic attributes that
        are recognized by the implementation logic of this component.
        Nested "property" elements identify JavaBeans properties of
        the component class that may be exposed for manipulation
        via tools.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="component-type"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "component-type" element represents the name under
            which the corresponding UIComponent class should be
            registered.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="component-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "component-class" element represents the fully
            qualified class name of a concrete UIComponent
            implementation class.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="facet"
                   type="javaee:faces-config-facetType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="attribute"
                   type="javaee:faces-config-attributeType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="property"
                   type="javaee:faces-config-propertyType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="component-extension"
                   type="javaee:faces-config-component-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-component-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for component.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-default-localeType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "default-locale" element declares the default locale
        for this application instance.</p>
        
        <p>It must be specified as :language:[_:country:[_:variant:]]
        without the colons, for example "ja_JP_SJIS".  The
        separators between the segments may be '-' or '_'.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="javaee:faces-config-localeType">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-default-valueType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "default-value" contains the value for the property or
        attribute in which this element resides.  This value differs
        from the "suggested-value" in that the property or attribute
        must take the value, whereas in "suggested-value" taking the
        value is optional.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:restriction base="javaee:string">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:simpleType name="faces-config-el-expressionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> EL expressions present within a faces config file
        must start with the character sequence of '#{' and
        end with '}'.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="#\{.*\}"/>
    </xsd:restriction>
  </xsd:simpleType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-facetType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Define the name and other design-time information for a facet
        that is associated with a renderer or a component.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="facet-name"
                   type="javaee:java-identifierType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "facet-name" element represents the facet name
            under which a UIComponent will be added to its parent.
            It must be of type "Identifier".</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="facet-extension"
                   type="javaee:faces-config-facet-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-facet-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for facet.  It may contain implementation
        specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-from-view-idType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p><span class="changed_modified_2_2">The</span>
        value of from-view-id must contain one of the following
        values:</p>
        
        <ul>
        
        <li><p>The exact match for a view identifier that is recognized
        by the the ViewHandler implementation being used (such as
        "/index.jsp" if you are using the default ViewHandler).</p></li>
        
        <li><p class="changed_added_2_2">The exact match of a flow node id
        in the current flow, or a flow id of another flow.</p></li>
        
        <li><p> A proper prefix of a view identifier, plus a trailing
        "*" character.  This pattern indicates that all view
        identifiers that match the portion of the pattern up to the
        asterisk will match the surrounding rule.  When more than one
        match exists, the match with the longest pattern is selected.
        </p></li>
        
        <li><p>An "*" character, which means that this pattern applies
        to all view identifiers.  </p></li>
        
        </ul>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:restriction base="javaee:string">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-from-actionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "from-action" element contains an action reference
        expression that must have been executed (by the default
        ActionListener for handling application level events)
        in order to select the navigation rule.  If not specified,
        this rule will be relevant no matter which action reference
        was executed (or if no action reference was executed).</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="javaee:faces-config-el-expressionType">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-ifType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p>The "if" element defines a condition that must resolve
        to true in order for the navigation case on which it is
        defined to be matched, with the existing match criteria
        (action method and outcome) as a prerequiste, if present.
        The condition is defined declaratively using a value
        expression in the body of this element. The expression is
        evaluated at the time the navigation case is being matched.
        If the "from-outcome" is omitted and this element is
        present, the navigation handler will match a null outcome
        and use the condition return value to determine if the
        case should be considered a match.</p>
        
        <div class="changed_added_2_2">
        
        <p>When used in a <code>&lt;switch&gt;</code> within a flow, if the
        expresion returns <code>true</code>, the
        <code>&lt;from-outcome&gt;</code> sibling element's outcome is used as
        the id of the node in the flow graph to which control must be
        passed.</p>
        
        </div>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="javaee:faces-config-el-expressionType">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-parameter-valueType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2"></p>
        
        <div class="changed_added_2_2">
        
        </div>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="javaee:faces-config-el-expressionType">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-converterType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "converter" element represents a concrete Converter
        implementation class that should be registered under the
        specified converter identifier.  Converter identifiers must
        be unique within the entire web application.</p>
        
        <p>Nested "attribute" elements identify generic attributes that
        may be configured on the corresponding UIComponent in order
        to affect the operation of the Converter.  Nested "property"
        elements identify JavaBeans properties of the Converter
        implementation class that may be configured to affect the
        operation of the Converter.  "attribute" and "property"
        elements are intended to allow component developers to
        more completely describe their components to tools and users.
        These elements have no required runtime semantics.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:choice>
        <xsd:element name="converter-id"
                     type="javaee:string">
          <xsd:annotation>
            <xsd:documentation>
              <![CDATA[[
              <p> The "converter-id" element represents the
              identifier under which the corresponding
              Converter class should be registered.</p>
              
              ]]>
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="converter-for-class"
                     type="javaee:fully-qualified-classType">
          <xsd:annotation>
            <xsd:documentation>
              <![CDATA[[
              <p> The "converter-for-class" element represents the
              fully qualified class name for which a Converter
              class will be registered.</p>
              
              ]]>
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
      <xsd:element name="converter-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "converter-class" element represents the fully
            qualified class name of a concrete Converter
            implementation class.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="attribute"
                   type="javaee:faces-config-attributeType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> Nested "attribute" elements identify generic
            attributes that may be configured on the
            corresponding UIComponent in order to affect the
            operation of the Converter.  This attribute is
            primarily for design-time tools and is not
            specified to have any meaning at runtime.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="property"
                   type="javaee:faces-config-propertyType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> Nested "property" elements identify JavaBeans
            properties of the Converter implementation class
            that may be configured to affect the operation of
            the Converter.  This attribute is primarily for
            design-time tools and is not specified to have
            any meaning at runtime.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="converter-extension"
                   type="javaee:faces-config-converter-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-converter-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for converter.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-lifecycleType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "lifecycle" element provides a mechanism to specify
        modifications to the behaviour of the default Lifecycle
        implementation for this web application.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="phase-listener"
                   type="javaee:fully-qualified-classType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "phase-listener" element contains the fully
            qualified class name of the concrete PhaseListener
            implementation class that will be registered on
            the Lifecycle.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="lifecycle-extension"
                   type="javaee:faces-config-lifecycle-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-lifecycle-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for lifecycle.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>

  <xsd:simpleType name="faces-config-localeType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The localeType defines valid locale defined by ISO-639-1
        and ISO-3166.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="([a-z]{2})[_|\-]?([\p{L}]{2})?[_|\-]?(\w+)?"/>
    </xsd:restriction>
  </xsd:simpleType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-locale-configType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "locale-config" element allows the app developer to
        declare the supported locales for this application.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="default-locale"
                   type="javaee:faces-config-default-localeType"
                   minOccurs="0"/>
      <xsd:element name="supported-locale"
                   type="javaee:faces-config-supported-localeType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-default-validatorsType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "default-validators" element allows the app developer to
        register a set of validators, referenced by identifier, that
        are automatically assigned to any EditableValueHolder component
        in the application, unless overridden or disabled locally.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="validator-id"
                   type="javaee:string"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "validator-id" element represents the identifier
            of a registered validator.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-managed-beanType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "managed-bean" element represents a JavaBean, of a
        particular class, that will be dynamically instantiated
        at runtime (by the default VariableResolver implementation)
        if it is referenced as the first element of a value binding
        expression, and no corresponding bean can be identified in
        any scope.  In addition to the creation of the managed bean,
        and the optional storing of it into the specified scope,
        the nested managed-property elements can be used to
        initialize the contents of settable JavaBeans properties of
        the created instance.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="managed-bean-name"
                   type="javaee:java-identifierType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "managed-bean-name" element represents the
            attribute name under which a managed bean will
            be searched for, as well as stored (unless the
            "managed-bean-scope" value is "none").</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="managed-bean-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "managed-bean-class" element represents the fully
            qualified class name of the Java class that will be
            used`to instantiate a new instance if creation of the
            specified`managed bean is requested.</p>
            
            <p>The specified class must conform to standard JavaBeans
            conventions.  In particular, it must have a public
            zero-arguments constructor, and zero or more public
            property setters.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="managed-bean-scope"
                   type="javaee:faces-config-managed-bean-scopeOrNoneType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "managed-bean-scope" element represents the scope
            into which a newly created instance of the specified
            managed bean will be stored (unless the value is
            "none").</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:element name="managed-property"
                     type="javaee:faces-config-managed-propertyType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="map-entries"
                     type="javaee:faces-config-map-entriesType"/>
        <xsd:element name="list-entries"
                     type="javaee:faces-config-list-entriesType"/>
      </xsd:choice>
      <xsd:element name="managed-bean-extension"
                   type="javaee:faces-config-managed-bean-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="eager"
                   type="xsd:boolean"
                   use="optional">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p> This attribute is only considered when associated with
          an application-scoped managed bean. If the value of the eager
          attribute is true the runtime must instantiate this class
          and store the instance within the application scope when the
          application starts.</p>
          
          <p>If eager is unspecified or is false, the default "lazy"
          instantiation and scoped storage of the managed bean
          will occur.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definitionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">Top level element for a flow
        definition.</p>
        
        <div class="changed_added_2_2">
        
        <p>If there is no <code>&lt;start-node&gt;</code> element declared, it
        is assumed to be <code>&lt;flowName&gt;.xhtml</code>.</p>
        
        </div>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="start-node"
                   type="javaee:java-identifierType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">Declare the id of the starting node in the
            flow graph.  The start node may be any of the node types mentioned in
            the class javadocs for <code><a target="_"
            href="javax/faces/flow/FlowHandler.html">FlowHandler</a></code>.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="view"
                   type="javaee:faces-config-flow-definition-viewType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="switch"
                   type="javaee:faces-config-flow-definition-switchType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="flow-return"
                   type="javaee:faces-config-flow-definition-flow-returnType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="navigation-rule"
                   type="javaee:faces-config-navigation-ruleType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="flow-call"
                   type="javaee:faces-config-flow-definition-flow-callType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="method-call"
                   type="javaee:faces-config-flow-definition-faces-method-callType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="initializer"
                   type="javaee:faces-config-flow-definition-initializerType"
                   minOccurs="0"/>
      <xsd:element name="finalizer"
                   type="javaee:faces-config-flow-definition-finalizerType"
                   minOccurs="0"/>
      <xsd:element name="inbound-parameter"
                   type="javaee:faces-config-flow-definition-inbound-parameterType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"
                   use="required">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p class="changed_added_2_2">The id of this flow.  The id
          must be unique within the Application configuration Resource
          file in which this flow is defined.  The value of this attribute, 
          combined with the value of the &lt;faces-config&gt;&lt;name&gt; element
          must globally identify the flow within the application.<p> 
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-faces-method-callType">
    <xsd:sequence>
      <xsd:element name="method"
                   type="javaee:faces-config-flow-definition-faces-method-call-methodType"/>
      <xsd:element name="default-outcome"
                   type="javaee:string"/>
      <xsd:element name="parameter"
                   type="javaee:faces-config-flow-definition-flow-call-parameterType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">A parameter to pass when calling the method
            identified in the "method" element that is a sibling of this element.<p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-faces-method-call-methodType">
    <xsd:simpleContent>
      <xsd:extension base="javaee:faces-config-el-expressionType">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-flow-call-parameterType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">A parameter to pass when calling the method
        identified in the "method" element that is a sibling of this element.<p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="class"
                   type="javaee:string"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2"> The optional "class" element within a "parameter" element 
            will be interpreted as the fully qualified class name for the type
            of the "value" element.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="value"
                   type="javaee:faces-config-flow-definition-parameter-valueType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2"> The "value" element within an "parameter"
            must be a literal string or an EL Expression whose "get" will be called when the "method"
            associated with this element is invoked.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-viewType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">Define a view node in a flow graph.</p>
        
        <p>This element must contain exactly one
        <code>&lt;vdl-document&gt;</code> element.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="vdl-document"
                   type="javaee:java-identifierType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">Define the vdl-document for the enclosing view.<p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"
                   use="required">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p class="changed_added_2_2">The id of this view.  It must be
          unique within the flow.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-switchType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">Define a switch node in a flow graph.</p>
        
        <div class="changed_added_2_2">
        
        <p>This element must contain one or more
        <code>&lt;case&gt;</code> elements.  When control passes to the
        <code>&lt;switch&gt;</code> node, each of the cases must be considered
        in order and control must past to the <code>&lt;from-outcome&gt;</code>
        of the first one whose <code>&lt;if&gt;</code> expression evaluates to 
        <code>true</code>.</p>
        
        </div>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="case"
                   type="javaee:faces-config-flow-definition-switch-caseType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">Defines a case that must be
            considered in the list of cases in the
            <code>&lt;switch&gt;</code>.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="default-outcome"
                   type="javaee:string"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">Defines the default case that will
            be taken if none of the other cases in the
            <code>&lt;switch&gt;</code> are taken.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"
                   use="required">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p class="changed_added_2_2">The id of this switch.  It must be
          unique within the flow.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-switch-caseType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">Defines a case that will
        be considered in the <code>&lt;switch&gt;</code>.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="if"
                   type="javaee:faces-config-ifType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">If this EL expression evaluates to
            <code>true</code>, the corresponding <code>from-outcome</code> will 
            be the outcome taken by the enclosing <code>&lt;switch&gt;</code></p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="from-outcome"
                   type="javaee:string"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p>The "from-outcome" element contains a logical outcome
            string returned by the execution of an application
            action method selected via an "actionRef" property
            (or a literal value specified by an "action" property)
            of a UICommand component.  If specified, this rule
            will be relevant only if the outcome value matches
            this element's value.  If not specified, this rule
            will be relevant if the outcome value is non-null
            or, if the "if" element is present, will be relevant
            for any outcome value, with the assumption that the
            condition specified in the "if" element ultimately
            determines if this rule is a match.</p>
            
            <p class="changed_added_2_2">If used in a faces flow, this element
            represents the node id to which control will be passed.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID">
    </xsd:attribute>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-flow-returnType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">Define a return node in a flow graph.</p>
        
        <div class="changed_added_2_2">
        
        <p>This element must contain exactly one <code>&lt;from-outcome&gt;</code> element.</p>
        </div>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="from-outcome"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">This element
            represents the node id to which control will be passed.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"
                   use="required">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p class="changed_added_2_2">The id of this flow-return.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-flow-callType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">Define a call node in a flow graph.</p>
        
        <div class="changed_added_2_2">
        
        <p>This element must contain exactly one <code>&lt;flow-reference&gt;</code> element, 
        which must contain exactly one <code>&lt;flow-id&gt;</code> element.</p>
        </div>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="flow-reference"
                   type="javaee:faces-config-flow-definition-flow-call-flow-referenceType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">The flow id of the called flow.<p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="outbound-parameter"
                   type="javaee:faces-config-flow-definition-flow-call-outbound-parameterType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2">A parameter to pass when calling the flow
            identified in the "flow-reference" element that is a sibling of this element.<p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"
                   use="required">
      <xsd:annotation>
        <xsd:documentation>
          <![CDATA[[
          <p class="changed_added_2_2">The id of this flow-return.</p>
          
          ]]>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-flow-call-flow-referenceType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">Identifiy the called flow.</p>
        
        <div class="changed_added_2_2">
        
        </div>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="flow-document-id"
                   type="javaee:java-identifierType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p>The document id of the called flow.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="flow-id"
                   type="javaee:java-identifierType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p>The id of the called flow.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-initializerType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">A <code>MethodExpression</code> that will be invoked when the flow is entered.<p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="javaee:faces-config-el-expressionType">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-finalizerType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">A <code>MethodExpression</code> that will be invoked when the flow is exited.<p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="javaee:faces-config-el-expressionType">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-inbound-parameterType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">A named parameter whose value will be populated
        with a correspondingly named parameter within an "outbound-parameter" element.<p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name"
                   type="javaee:java-identifierType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2"> The "name" element within an "inbound-parameter"
            element declares the name of this parameter
            to be passed into a flow.  There must be 
            a sibling "value" element in the same parent as this element.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="value"
                   type="javaee:faces-config-flow-definition-parameter-valueType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2"> The "value" element within an "inbound-parameter"
            must be an EL Expression whose value will be set with the correspondingly
            named "outbound-parameter" when this flow is entered, if such a 
            parameter exists.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-flow-definition-flow-call-outbound-parameterType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">A named parameter whose value will be 
        passed to a correspondingly named parameter within an "inbound-parameter" element
        on the target flow.<p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name"
                   type="javaee:java-identifierType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2"> The "name" element within an "outbound-parameter" element 
            declares the name of this parameter to be passed out of a flow.  There must be 
            a sibling "value" element in the same parent as this element.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="value"
                   type="javaee:faces-config-flow-definition-parameter-valueType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p class="changed_added_2_2"> The "value" element within an "outbound-parameter"
            must be a literal string or an EL Expression whose "get" will be called when the "flow-call"
            containing this element is traversed to go to a new flow.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-managed-bean-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for managed-bean.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-managed-bean-scopeOrNoneType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        [
        
        <p> Defines the legal values for the <managed-bean-scope>
        element's body content, which includes all of the scopes
        normally used in a web application, plus the "none" value
        indicating that a created bean should not be stored into
        any scope.  Alternatively, an EL expression may be used
        as the value of this element.  The result of evaluating this
        expression must by of type java.util.Map.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:restriction base="javaee:string">
        <xsd:pattern value="view|request|session|application|none|#\{.*\}"/>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-managed-propertyType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "managed-property" element represents an individual
        property of a managed bean that will be configured to the
        specified value (or value set) if the corresponding
        managed bean is automatically created.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="property-name"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "property-name" element represents the JavaBeans
            property name under which the corresponding value may
            be stored.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="property-class"
                   type="javaee:java-typeType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "property-class" element represents the Java type
            of the value associated with this property name.
            If not specified, it can be inferred from existing
            classes; however, this element should be specified
            if the configuration file is going to be the source
            for generating the corresponding classes.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:element name="map-entries"
                     type="javaee:faces-config-map-entriesType"/>
        <xsd:element name="null-value"
                     type="javaee:faces-config-null-valueType"/>
        <xsd:element name="value"
                     type="javaee:faces-config-valueType"/>
        <xsd:element name="list-entries"
                     type="javaee:faces-config-list-entriesType"/>
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-map-entryType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "map-entry" element reprsents a single key-entry pair
        that will be added to the computed value of a managed
        property of type java.util.Map.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="key"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "key" element is the String representation of a
            map key that will be stored in a managed property of
            type java.util.Map.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:choice>
        <xsd:element name="null-value"
                     type="javaee:faces-config-null-valueType"/>
        <xsd:element name="value"
                     type="javaee:faces-config-valueType"/>
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-map-entriesType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "map-entries' element represents a set of key-entry pairs
        that will be added to the computed value of a managed property
        of type java.util.Map.  In addition, the Java class types
        of the key and entry values may be optionally declared.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="key-class"
                   type="javaee:fully-qualified-classType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "key-class" element defines the Java type to which
            each "key" element in a set of "map-entry" elements
            will be converted to.  If omitted, "java.lang.String"
            is assumed.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="value-class"
                   type="javaee:faces-config-value-classType"
                   minOccurs="0"/>
      <xsd:element name="map-entry"
                   type="javaee:faces-config-map-entryType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-navigation-caseType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "navigation-case" element describes a particular
        combination of conditions that must match for this case to
        be executed, and the view id of the component tree that
        should be selected next.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="from-action"
                   type="javaee:faces-config-from-actionType"
                   minOccurs="0"/>
      <xsd:element name="from-outcome"
                   type="javaee:string"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p>The "from-outcome" element contains a logical outcome
            string returned by the execution of an application
            action method selected via an "actionRef" property
            (or a literal value specified by an "action" property)
            of a UICommand component.  If specified, this rule
            will be relevant only if the outcome value matches
            this element's value.  If not specified, this rule
            will be relevant if the outcome value is non-null
            or, if the "if" element is present, will be relevant
            for any outcome value, with the assumption that the
            condition specified in the "if" element ultimately
            determines if this rule is a match.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="if"
                   type="javaee:faces-config-ifType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> Please see section JSF.7.4.2 for the specification of this element.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="to-view-id"
                   type="javaee:faces-config-valueType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p><span class="changed_modified_2_2">The "to-view-id" element 
            contains the view identifier (<span class="changed_added_2_2">or 
            flow node id, or flow id</span>)
            of the next view (<span class="changed_added_2_2">or flow node or 
            flow</span>) that should be displayed if this
            navigation rule is matched. If the contents is a
            value expression, it should be resolved by the
            navigation handler to obtain the view (
            <span class="changed_added_2_2">or flow node or flow</span>) 
            identifier.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="to-flow-document-id"
                   type="javaee:java-identifierType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p>The document id of the called flow.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="redirect"
                   type="javaee:faces-config-redirectType"
                   minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-navigation-ruleType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "navigation-rule" element represents an individual
        decision rule that will be utilized by the default
        NavigationHandler implementation to make decisions on
        what view should be displayed next, based on the
        view id being processed.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="from-view-id"
                   type="javaee:faces-config-from-view-idType"
                   minOccurs="0"/>
      <xsd:element name="navigation-case"
                   type="javaee:faces-config-navigation-caseType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="navigation-rule-extension"
                   type="javaee:faces-config-navigation-rule-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-navigation-rule-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for navigation-rule.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-null-valueType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "null-value" element indicates that the managed
        property in which we are nested will be explicitly
        set to null if our managed bean is automatically
        created.  This is different from omitting the managed
        property element entirely, which will cause no
        property setter to be called for this property.</p>
        
        <p>The "null-value" element can only be used when the
        associated "property-class" identifies a Java class,
        not a Java primitive.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-propertyType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "property" element represents a JavaBean property of the
        Java class represented by our parent element.</p>
        
        <p>Property names must be unique within the scope of the Java
        class that is represented by the parent element, and must
        correspond to property names that will be recognized when
        performing introspection against that class via
        java.beans.Introspector.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="property-name"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "property-name" element represents the JavaBeans
            property name under which the corresponding value
            may be stored.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="property-class"
                   type="javaee:java-typeType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "property-class" element represents the Java type
            of the value associated with this property name.
            If not specified, it can be inferred from existing
            classes; however, this element should be specified if
            the configuration file is going to be the source for
            generating the corresponding classes.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="default-value"
                   type="javaee:faces-config-default-valueType"
                   minOccurs="0"/>
      <xsd:element name="suggested-value"
                   type="javaee:faces-config-suggested-valueType"
                   minOccurs="0"/>
      <xsd:element name="property-extension"
                   type="javaee:faces-config-property-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-protected-viewsType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p class="changed_added_2_2">Any view that matches any of the
        url-patterns in this element may only be reached from another JSF
        view in the same web application. Because the runtime is aware of
        which views are protected, any navigation from an unprotected
        view to a protected view is automatically subject to
        protection.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="url-pattern"
                   type="javaee:url-patternType"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-property-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for property.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-redirectType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "redirect" element indicates that navigation to the
        specified "to-view-id" should be accomplished by
        performing an HTTP redirect rather than the usual
        ViewHandler mechanisms.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="view-param"
                   type="javaee:faces-config-redirect-viewParamType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="redirect-param"
                   type="javaee:faces-config-redirect-redirectParamType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
    <xsd:attribute name="include-view-params"
                   type="xsd:boolean"
                   use="optional"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-redirect-viewParamType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> This element was introduced due to a specification
        error, and is now deprecated.  The correct name for
        this element is "redirect-param" and its meaning is
        documented therein.  The "view-param" element is
        maintained to preserve backwards compatibility.
        Implementations must treat this element the same as
        "redirect-param".</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name"
                   type="javaee:string"/>
      <xsd:element name="value"
                   type="javaee:string"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-redirect-redirectParamType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "redirect-param" element, only valid within
        a "redirect" element, contains child "name"
        and "value" elements that must be included in the
        redirect url when the redirect is performed.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="name"
                   type="javaee:string"/>
      <xsd:element name="value"
                   type="javaee:string"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-referenced-beanType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "referenced-bean" element represents at design time the
        promise that a Java object of the specified type will exist at
        runtime in some scope, under the specified key.  This can be
        used by design time tools to construct user interface dialogs
        based on the properties of the specified class.  The presence
        or absence of a referenced bean element has no impact on the
        JavaServer Faces runtime environment inside a web application.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="referenced-bean-name"
                   type="javaee:java-identifierType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "referenced-bean-name" element represents the
            attribute name under which the corresponding
            referenced bean may be assumed to be stored, in one
            of 'request', 'session', 'view', 'application'
            or a custom scope.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="referenced-bean-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "referenced-bean-class" element represents the
            fully qualified class name of the Java class
            (either abstract or concrete) or Java interface
            implemented by the corresponding referenced bean.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-render-kitType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "render-kit" element represents a concrete RenderKit
        implementation that should be registered under the specified
        render-kit-id.  If no render-kit-id is specified, the
        identifier of the default RenderKit
        (RenderKitFactory.DEFAULT_RENDER_KIT) is assumed.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="render-kit-id"
                   type="javaee:string"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "render-kit-id" element represents an identifier
            for the RenderKit represented by the parent
            "render-kit" element.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="render-kit-class"
                   type="javaee:fully-qualified-classType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "render-kit-class" element represents the fully
            qualified class name of a concrete RenderKit
            implementation class.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="renderer"
                   type="javaee:faces-config-rendererType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="client-behavior-renderer"
                   type="javaee:faces-config-client-behavior-rendererType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="render-kit-extension"
                   type="javaee:faces-config-render-kit-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-client-behavior-rendererType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "client-behavior-renderer" element represents a concrete
        ClientBehaviorRenderer implementation class that should be
        registered under the specified behavior renderer type identifier,
        in the RenderKit associated with the parent "render-kit"
        element.  Client Behavior renderer type must be unique within the RenderKit
        associated with the parent "render-kit" element.</p>
        
        <p>Nested "attribute" elements identify generic component
        attributes that are recognized by this renderer.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="client-behavior-renderer-type"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "client-behavior-renderer-type" element represents a renderer type
            identifier for the Client Behavior Renderer represented by the parent
            "client-behavior-renderer" element.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="client-behavior-renderer-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "client-behavior-renderer-class" element represents the fully
            qualified class name of a concrete Client Behavior Renderer
            implementation class.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-rendererType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "renderer" element represents a concrete Renderer
        implementation class that should be registered under the
        specified component family and renderer type identifiers,
        in the RenderKit associated with the parent "render-kit"
        element.  Combinations of component family and
        renderer type must be unique within the RenderKit
        associated with the parent "render-kit" element.</p>
        
        <p>Nested "attribute" elements identify generic component
        attributes that are recognized by this renderer.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="component-family"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "component-family" element represents the
            component family for which the Renderer represented
            by the parent "renderer" element will be used.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="renderer-type"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "renderer-type" element represents a renderer type
            identifier for the Renderer represented by the parent
            "renderer" element.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="renderer-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "renderer-class" element represents the fully
            qualified class name of a concrete Renderer
            implementation class.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="facet"
                   type="javaee:faces-config-facetType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="attribute"
                   type="javaee:faces-config-attributeType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
      <xsd:element name="renderer-extension"
                   type="javaee:faces-config-renderer-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-renderer-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for renderer.  It may contain implementation
        specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-render-kit-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for render-kit.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-suggested-valueType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "suggested-value" contains the value for the property or
        attribute in which this element resides.  This value is
        advisory only and is intended for tools to use when
        populating pallettes.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:restriction base="javaee:string"/>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-supported-localeType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "supported-locale" element allows authors to declare
        which locales are supported in this application instance.</p>
        
        <p>It must be specified as :language:[_:country:[_:variant:]]
        without the colons, for example "ja_JP_SJIS".  The
        separators between the segments may be '-' or '_'.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="javaee:faces-config-localeType">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-behaviorType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "behavior" element represents a concrete Behavior
        implementation class that should be registered under the
        specified behavior identifier.  Behavior identifiers must
        be unique within the entire web application.</p>
        
        <p>Nested "attribute" elements identify generic attributes that
        may be configured on the corresponding UIComponent in order
        to affect the operation of the Behavior.  Nested "property"
        elements identify JavaBeans properties of the Behavior
        implementation class that may be configured to affect the
        operation of the Behavior.  "attribute" and "property"
        elements are intended to allow component developers to
        more completely describe their components to tools and users.
        These elements have no required runtime semantics.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="behavior-id"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "behavior-id" element represents the identifier
            under which the corresponding Behavior class should
            be registered.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="behavior-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "behavior-class" element represents the fully
            qualified class name of a concrete Behavior
            implementation class.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="attribute"
                   type="javaee:faces-config-attributeType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> Nested "attribute" elements identify generic
            attributes that may be configured on the
            corresponding UIComponent in order to affect the
            operation of the Behavior.  This attribute is
            primarily for design-time tools and is not
            specified to have any meaning at runtime.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="property"
                   type="javaee:faces-config-propertyType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> Nested "property" elements identify JavaBeans
            properties of the Behavior implementation class
            that may be configured to affect the operation of
            the Behavior.  This attribute is primarily for
            design-time tools and is not specified to have
            any meaning at runtime.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="behavior-extension"
                   type="javaee:faces-config-behavior-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-behavior-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for behavior.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-validatorType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "validator" element represents a concrete Validator
        implementation class that should be registered under the
        specified validator identifier.  Validator identifiers must
        be unique within the entire web application.</p>
        
        <p>Nested "attribute" elements identify generic attributes that
        may be configured on the corresponding UIComponent in order
        to affect the operation of the Validator.  Nested "property"
        elements identify JavaBeans properties of the Validator
        implementation class that may be configured to affect the
        operation of the Validator.  "attribute" and "property"
        elements are intended to allow component developers to
        more completely describe their components to tools and users.
        These elements have no required runtime semantics.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:group ref="javaee:descriptionGroup"/>
      <xsd:element name="validator-id"
                   type="javaee:string">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "validator-id" element represents the identifier
            under which the corresponding Validator class should
            be registered.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="validator-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "validator-class" element represents the fully
            qualified class name of a concrete Validator
            implementation class.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="attribute"
                   type="javaee:faces-config-attributeType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> Nested "attribute" elements identify generic
            attributes that may be configured on the
            corresponding UIComponent in order to affect the
            operation of the Validator.  This attribute is
            primarily for design-time tools and is not
            specified to have any meaning at runtime.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="property"
                   type="javaee:faces-config-propertyType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> Nested "property" elements identify JavaBeans
            properties of the Validator implementation class
            that may be configured to affect the operation of
            the Validator.  This attribute is primarily for
            design-time tools and is not specified to have
            any meaning at runtime.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="validator-extension"
                   type="javaee:faces-config-validator-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-validator-extensionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> Extension element for validator.  It may contain
        implementation specific content.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any minOccurs="0"
               maxOccurs="unbounded"
               namespace="##any"
               processContents="lax"/>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>

  <xsd:simpleType name="faces-config-valueType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "value" element is the String representation of
        a literal value to which a scalar managed property
        will be set, or a value binding expression ("#{...}")
        that will be used to calculate the required value.
        It will be converted as specified for the actual
        property type.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:union memberTypes="javaee:faces-config-el-expressionType xsd:string"/>
  </xsd:simpleType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-value-classType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "value-class" element defines the Java type to which each
        "value" element's value will be converted to, prior to adding
        it to the "list-entries" list for a managed property that is
        a java.util.List, or a "map-entries" map for a managed
        property that is a java.util.Map.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:restriction base="javaee:fully-qualified-classType">
        <xsd:attribute name="id"
                       type="xsd:ID"/>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-list-entriesType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The "list-entries" element represents a set of initialization
        elements for a managed property that is a java.util.List or an
        array.  In the former case, the "value-class" element can
        optionally be used to declare the Java type to which each
        value should be converted before adding it to the Collection.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="value-class"
                   type="javaee:faces-config-value-classType"
                   minOccurs="0"/>
      <xsd:choice minOccurs="0"
                  maxOccurs="unbounded">
        <xsd:element name="null-value"
                     type="javaee:faces-config-null-valueType"/>
        <xsd:element name="value"
                     type="javaee:faces-config-valueType"/>
      </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>


<!-- **************************************************** -->

  <xsd:complexType name="faces-config-system-event-listenerType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> The presence of this element within the "application" element in
        an application configuration resource file indicates the
        developer wants to add an SystemEventListener to this
        application instance.  Elements nested within this element allow
        selecting the kinds of events that will be delivered to the
        listener instance, and allow selecting the kinds of classes that
        can be the source of events that are delivered to the listener
        instance.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="system-event-listener-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "system-event-listener-class" element contains
            the fully qualified class name of the concrete
            SystemEventListener implementation class that will be
            called when events of the type specified by the
            "system-event-class" are sent by the runtime.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="system-event-class"
                   type="javaee:fully-qualified-classType">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "system-event-class" element contains the fully
            qualified class name of the SystemEvent subclass for
            which events will be delivered to the class whose fully
            qualified class name is given by the
            "system-event-listener-class" element.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="source-class"
                   type="javaee:fully-qualified-classType"
                   minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
            <![CDATA[[
            <p> The "source-class" element, if present, contains the
            fully qualified class name of the class that will be the
            source for the event to be delivered to the class whose
            fully qualified class name is given by the
            "system-event-listener-class" element.</p>
            
            ]]>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id"
                   type="xsd:ID"/>
  </xsd:complexType>

  <xsd:simpleType name="faces-config-versionType">
    <xsd:annotation>
      <xsd:documentation>
        <![CDATA[[
        <p> This type contains the recognized versions of
        faces-config supported.</p>
        
        ]]>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="2.2"/>
    </xsd:restriction>
  </xsd:simpleType>

</xsd:schema>
