<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.

 Copyright 2009 Sun Microsystems, Inc. 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.html
 or glassfish/bootstrap/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 glassfish/bootstrap/legal/LICENSE.txt.
 Sun designates this particular file as subject to the "Classpath" exception
 as provided by Sun in the GPL Version 2 section of the License file that
 accompanied this code.  If applicable, add the following below the License
 Header, with the fields enclosed by brackets [] replaced by your own
 identifying information: "Portions Copyrighted [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.
-->

<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
              version="2.0">
    <description>


        &lt;/pre&gt;

        &lt;div class="changed_added_2_0"&gt;

        &lt;p&gt;Describes the Facelets2 tag library used for declaring and
        defining
        the usage contract for composite UI Components. When authoring a
        composite component, use of this tag library is largely optional,
        though always recommended. Declaring and defining a composite
        component with this taglib provides valuable information about the
        component that can be used by tools and users of the composite
        component. In most cases, a composite component can be authored
        without declaring and defining its usage contract with this taglib.
        PENDING: the limit of what one can do without declaring and defining a
        usage contract must be cleary specified and documented. PENDING: The
        implementation team must help discover these limits.
        &lt;/p&gt;

        &lt;h2&gt;Creating a Composite Component&lt;/h2&gt;

        &lt;p&gt;The default implementation must support authoring A composite
        component is declared by creating a Facelets2 file inside of a resource
        library. (See section JSF.2.6 of the specification prose document for
        more information about resource libraries.) A composite component
        must reside within a resource library. It is not possible to create a
        composite component without putting it inside of a resource
        library.&lt;/p&gt;

        &lt;p&gt;The default XML namespace URI of the taglib that contains the
        composite component, for use in &lt;em&gt;the using page&lt;/em&gt;, is
        &lt;code&gt;http://java.sun.com/jsf/composite/&amp;lt;composite-library-name&amp;gt;&lt;/code&gt;,
        where &lt;code&gt;&amp;lt;composite-library-name&amp;gt;&lt;/code&gt; is
        the name of the
        resource library. For example:&lt;/p&gt;

        &lt;pre&gt;&lt;code&gt;
        &amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        &lt;br /&gt;
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br
        /&gt;
        &amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;
        xmlns:h="http://java.sun.com/jsf/html"&lt;br /&gt;
        xmlns:f="http://java.sun.com/jsf/core"&lt;br /&gt;
        xmlns:ui="http://java.sun.com/jsf/facelets"&lt;br /&gt;
        xmlns:ez="&lt;i&gt;http://java.sun.com/jsf/composite/&lt;b&gt;ezcomp&lt;/b&gt;&lt;/i&gt;"&amp;gt;&lt;br
        /&gt;
        ...&lt;br /&gt;
        &lt;/code&gt;&lt;/pre&gt;

        &lt;p&gt;This declares that any Facelets2 file in the resource
        library called &lt;code&gt;ezcomp&lt;/code&gt; can be used as a regular
        JSF UI
        component in a page with the above namespace declaration by using the
        "&lt;code&gt;ez&lt;/code&gt;" prefix. For example, placing a file called
        &lt;code&gt;foo.xhtml&lt;/code&gt; in a resource library called &lt;code&gt;ezcomp&lt;/code&gt;
        would make that file accessible like this.&lt;/p&gt;

        &lt;pre&gt;&lt;code&gt;
        &amp;lt;ez:foo /&amp;gt;
        &lt;/code&gt;&lt;/pre&gt;


        &lt;p&gt;The implementation must also support declaring the
        namespace of the tag library in a JSF PDL tag library descriptor.
        This descriptor file is optional and is useful for component vendors
        that do not want to use the default XML namespace. This version of
        the proposal currently uses the facelet taglib descriptor syntax. For
        example: &lt;/p&gt;

        &lt;pre&gt;&lt;code&gt;
        &amp;lt;facelet-taglib&amp;gt;&lt;br /&gt;
        &amp;lt;namespace&amp;gt;http://domain.com/path&amp;lt;/namespace&amp;gt;
        &lt;br /&gt;
        &amp;lt;composite-library-name&amp;gt;compositeTest&amp;lt;/composite-library-name&amp;gt;
        &lt;br /&gt;
        &amp;lt;/facelet-taglib&amp;gt; &lt;br /&gt;
        &lt;/code&gt;&lt;/pre&gt;

        &lt;p&gt;Components from that taglibrary may be used in a using page by
        declaring them in the XML namespace for that page:&lt;/p&gt;

        &lt;pre&gt;&lt;code&gt;
        &amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        &lt;br /&gt;
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br
        /&gt;
        &amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;
        xmlns:h="http://java.sun.com/jsf/html"&lt;br /&gt;
        xmlns:f="http://java.sun.com/jsf/core"&lt;br /&gt;
        xmlns:ui="http://java.sun.com/jsf/facelets"&lt;br /&gt;
        xmlns:ez="&lt;i&gt;&lt;b&gt;http://domain.com/path/namespace&lt;/b&gt;&lt;/i&gt;"&amp;gt;&lt;br
        /&gt;
        ...&lt;br /&gt;
        &lt;/code&gt;&lt;/pre&gt;


        &lt;p&gt;&lt;a name="composite_example"&gt;Below is an example of a
        fairly
        involved composite component declaration. Such a declaration might
        appear in &lt;code&gt;foo.xhtml&lt;/code&gt;.&lt;/a&gt;&lt;/p&gt;

        &lt;div class="syntax"&gt;&lt;div class="html4strict"
        style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
        class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;&lt;a
        href="interface.html"&gt;composite:interface&lt;/a&gt; &lt;span
        class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;foo&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp;displayName=&lt;span class="st0"&gt;&amp;quot;Very Simple
        Login Panel&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp;preferred=&lt;span class="st0"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp;expert=&lt;span class="st0"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp;shortDescription=&lt;span class="st0"&gt;&amp;quot;An
        illustration of the composite component feature&amp;quot;&lt;/span&gt;&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;&lt;a href="attribute.html"&gt;composite:attribute&lt;/a&gt;
        &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;model&amp;quot;&lt;/span&gt;
        required=&lt;span class="st0"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;composite:attribute &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;loginAction&amp;quot;&lt;/span&gt; required=&lt;span
        class="st0"&gt;&amp;quot;true&amp;quot;&lt;/span&gt; method-signature=&lt;span
        class="st0"&gt;&amp;quot;java.lang.Object action()&amp;quot;&lt;/span&gt;/
        &lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:attribute&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;composite:attribute &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;valueChangeListener&amp;quot;&lt;/span&gt;
        targets=&lt;span class="st0"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;
        /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;composite:attribute &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;specialMethodExpression&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp;method-signature=&lt;span class="st0"&gt;&amp;quot;com.foo.User
        validateCurrentUser()&amp;quot;&lt;/span&gt; /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;composite:attribute &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;loginButtonLabel&amp;quot;&lt;/span&gt;
        default=&lt;span class="st0"&gt;&amp;quot;Login&amp;quot;&lt;/span&gt; /&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;&lt;a href="editableValueHolder.html"&gt;composite:editableValueHolder&lt;/a&gt;
        &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;
        /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;loginEvent&amp;quot;&lt;/span&gt; /&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;cancelEvent&amp;quot;&lt;/span&gt; /&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;allEvents&amp;quot;&lt;/span&gt; targets=&lt;span
        class="st0"&gt;&amp;quot;loginEvent,cancelEvent&amp;quot;&lt;/span&gt; /&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
        class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span class="sc2"&gt;&amp;lt;&lt;a
        href="implementation.html"&gt;composite:implementation&lt;/a&gt; &lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;ui:decorate template=&lt;span class="st0"&gt;&amp;quot;fooTemplate.xhtml&amp;quot;&lt;/span&gt;&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;ui:define &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;header&amp;quot;&lt;/span&gt;&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/span&gt;This
        is the login panel header&lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &lt;span
        class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/ui:define&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;ui:define &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;body&amp;quot;&lt;/span&gt;&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp;&lt;span class="sc2"&gt;&amp;lt;h:inputText &lt;span
        class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;
        /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &lt;span class="sc2"&gt;&amp;lt;h:commandButton &lt;span
        class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;loginEvent&amp;quot;&lt;/span&gt;
        &lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="kw3"&gt;value&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;#{cc.attrs.loginButtonLabel}&amp;quot;&lt;/span&gt;&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/h:commandButton&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &lt;span class="sc2"&gt;&amp;lt;h:commandButton &lt;span
        class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;cancelEvent&amp;quot;&lt;/span&gt;
        &lt;span class="kw3"&gt;value&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;Cancel&amp;quot;&lt;/span&gt;
        &lt;span class="kw3"&gt;action&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;cancel&amp;quot;&lt;/span&gt;&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/h:commandButton&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &lt;span class="sc2"&gt;&amp;lt;special:validateUserButton
        &lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &amp;nbsp; &amp;nbsp; validateUser=&lt;span class="st0"&gt;&amp;quot;#{cc.attrs.specialMethodExpression}&amp;quot;&lt;/span&gt;
        /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
        &lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &lt;span
        class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/ui:define&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &lt;span
        class="sc2"&gt;&amp;lt;ui:define &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
        class="st0"&gt;&amp;quot;footer&amp;quot;&lt;/span&gt;&lt;span
        class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span
        class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/span&gt;This
        is the login panel footer&lt;span class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp; &lt;span
        class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/ui:define&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
        class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/ui:decorate&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
        &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
        class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
        &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

        &lt;p&gt;The values for attributes in a composite component PDL file can
        be
        fully localized by putting them inside a ResourceBundle in the same
        directory as the PDL page and accessing them with the per-component
        resource bundle syntax. Consider the file &lt;code&gt;foo.xhtml&lt;/code&gt;,
        in
        the resource library &lt;code&gt;ezcomp&lt;/code&gt;. The
        &lt;code&gt;shortDescription&lt;/code&gt; element could be changed to
        be:&lt;/p&gt;

        &lt;pre&gt;&lt;code&gt;
        &amp;lt;composite:interface
        shortDescription="#{cc.resourceBundleMap.shortDescription}" &amp;gt;
        &lt;/code&gt;&lt;/pre&gt;

        &lt;p&gt;In this case, In the same &lt;code&gt;ezcomp&lt;/code&gt;
        directory as
        &lt;code&gt;foo.xhtml&lt;/code&gt;, there would be a &lt;code&gt;foo.properties&lt;/code&gt;
        file that would contain this entry:&lt;/p&gt;

        &lt;pre&gt;&lt;code&gt;
        shortDescription=A really nifty login panel.
        &lt;/code&gt;&lt;/pre&gt;

        &lt;p&gt;The normal localization rules for &lt;code&gt;ResourceBundle&lt;/code&gt;
        would
        apply.&lt;/p&gt;

        &lt;/div&gt;


        &lt;pre&gt;


    </description>
    <namespace>http://java.sun.com/jsf/composite</namespace>
    <tag>
        <description>


            &lt;div class="changed_added_2_0"&gt;

            &lt;p&gt;This element declares the usage contract for a composite
            component. Optionally, and at the component author's
            discretion, this contract exposes the features of one or
            more inner components to the page author. The page author
            can work with the composite component as a single component
            whose feature set is the union of the features declared in
            the usage contract.&lt;/p&gt;

            &lt;p&gt;For example, consider a composite component that
            implements the functionality of a "login panel". Such a
            component would likely have two text fields and one button.
            The user of such a component might like to do one or more of
            the following.&lt;/p&gt;

            &lt;ul&gt;

            &lt;li&gt;&lt;p&gt;Be able to listen for the &lt;code&gt;ActionEvent&lt;/code&gt;
            on the button.&lt;/p&gt;

            &lt;p&gt;In this case, a
            &lt;code&gt;&amp;lt;composite:actionSource&amp;gt;&lt;/code&gt;
            element is
            included in the usage contract that refers to the inner
            button in the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section.&lt;/p&gt;

            &lt;/li&gt;

            &lt;li&gt;&lt;p&gt;Provide an "action" to invoke when the button is
            pressed.
            &lt;/p&gt;

            &lt;p&gt;In this case, a
            &lt;code&gt;&amp;lt;composite:attribute&amp;gt;&lt;/code&gt; element
            is included
            in the usage contract that refers to the inner button in the
            &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section and
            declares the proper method signature for an "action".&lt;/p&gt;

            &lt;/li&gt;

            &lt;li&gt;&lt;p&gt;Provide parameters to the composite component for
            labels and other rendering specific aspects of the composite
            component.&lt;/p&gt;

            &lt;p&gt;In this case, one or more
            &lt;code&gt;&amp;lt;composite:attribute&amp;gt;&lt;/code&gt;
            elements are included
            in the usage contract and those parameters are referred to in
            the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section
            using EL expressions like
            &lt;code&gt;#{cc.attrs.usernameLabel}&lt;/code&gt;,
            assuming &lt;code&gt;usernameLabel&lt;/code&gt; is the &lt;code&gt;name&lt;/code&gt;
            of one of the &lt;code&gt;&amp;lt;composite:attribute&amp;gt;&lt;/code&gt;
            elements in the usage contract.&lt;/p&gt;

            &lt;/li&gt;


            &lt;li&gt;&lt;p&gt;Add &lt;code&gt;ValueChangeListener&lt;/code&gt;s,
            &lt;code&gt;Converter&lt;/code&gt;s, or &lt;code&gt;Validator&lt;/code&gt;s
            to either
            or both text fields.
            &lt;/p&gt;

            &lt;p&gt;In this case, a
            &lt;code&gt;&amp;lt;composite:editableValueHolder&amp;gt;&lt;/code&gt;
            element is
            included in the usage contract that refers to the inner text
            field in the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section. In the case of wanting to enable only adding a
            &lt;code&gt;Converter&lt;/code&gt; (and not a
            &lt;code&gt;ValueChangeListener&lt;/code&gt; or &lt;code&gt;Validator&lt;/code&gt;,
            a
            &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;
            element would be
            used.&lt;/p&gt;

            &lt;/li&gt;

            &lt;li&gt;&lt;p&gt;Add facet children to the login panel.&lt;/p&gt;

            &lt;p&gt;In this case, a &lt;code&gt;&amp;lt;composite:facet&amp;gt;&lt;/code&gt;
            element is included in the usage contract that refers to the
            inner &lt;code&gt;&amp;lt;composite:renderFacet&amp;gt;&lt;/code&gt;
            element in
            the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section.
            &lt;/p&gt;

            &lt;/li&gt;


            &lt;/ul&gt;

            &lt;p&gt;For each of the behaviorial interfaces in Section JSF.3.2
            of
            the specification, there is a tag in the
            &lt;code&gt;composite:&lt;/code&gt; library to nest inside of the
            &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt;
            section.
            &lt;/p&gt;


            &lt;p&gt;If the &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt;
            section
            is not present in a &lt;em&gt;PDL page&lt;/em&gt;, the contract will
            be
            inferred as described in the specification. There must be
            zero or one of these elements in a composite component PDL
            file. If a &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt;
            element
            does appear, there must be an accompanying
            &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            element in the
            same PDL file. &lt;/p&gt;

            &lt;p&gt;&lt;b&gt;Nesting of composite components&lt;/b&gt;&lt;/p&gt;

            &lt;p&gt;The implementation must support nesting of composite
            components. Specifically, it must be possible for the
            &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section of a
            composite component to act as the &lt;em&gt;using page&lt;/em&gt;
            for
            another composite component. When a composite component
            exposes a behavioral interface to the &lt;em&gt;using page&lt;/em&gt;,
            such as a &lt;code&gt;&amp;lt;composite:actionSource&amp;gt;&lt;/code&gt;,
            &lt;code&gt;&amp;lt;composite:editableValueHolder&amp;gt;&lt;/code&gt;,
            &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt; or
            other
            behavioral interface, it must be possible to
            &amp;#8220;propogate&amp;#8221; the exposure of such an interface in
            the case of a nested composite component. The composite
            component author must ensure that the value of the
            &lt;code&gt;name&lt;/code&gt; attributes exactly match at all levels
            of
            the nesting to enable this exposure to work. The
            implementation is not required to support
            &amp;#8220;re-mapping&amp;#8221; of names in a nested composite
            component.&lt;/p&gt;

            &lt;p&gt;For example, consider this nested composite component.&lt;/p&gt;

            &lt;p&gt;Using page&lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;ez:actionSourceOuter&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;f:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;button1&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/ez:actionSourceOuter&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

            &lt;p&gt;actionSourceOuter.xhtml: Outer composite component&lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;button1&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;ez:actionSourceInner /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

            &lt;p&gt;actionSourceInner.xhtml: the composite component used
            within a
            composite component.&lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;button1&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;h:commandButton &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;button1&amp;quot;&lt;/span&gt; &lt;span
            class="kw3"&gt;value&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;the
            real button&amp;quot;&lt;/span&gt; /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

            &lt;p&gt;The &lt;code&gt;id&lt;/code&gt; of the &lt;code&gt;&amp;lt;h:commandButton&amp;gt;&lt;/code&gt;
            on
            line 6 of actionSourceInner.xhtml must match the &lt;code&gt;name&lt;/code&gt;
            on
            line 2 of that file (this is a standard requirement for all
            composite
            components, nested or not). That &lt;code&gt;id&lt;/code&gt; must
            also match the
            &lt;code&gt;name&lt;/code&gt; on line 2 of actionSourceOuter.xhtml,
            and the
            &lt;code&gt;for&lt;/code&gt; on line 2 of the using page.&lt;/p&gt;

            &lt;p&gt;The implementation must support any level of nesting as
            long as the
            &lt;code&gt;for&lt;/code&gt;, &lt;code&gt;name&lt;/code&gt;, and
            &lt;code&gt;id&lt;/code&gt; values match
            up. Furthermore, the &lt;code&gt;targets&lt;/code&gt; attribute is
            also valid for
            use in this nested fashion.&lt;/p&gt;

            &lt;p&gt;&lt;b&gt;Naming containers within composite components&lt;/b&gt;&lt;/p&gt;

            &lt;p&gt;Composite components are themselves naming containers so
            that any
            possible id conflicts between inner components and components in the
            using page are avoided. However, special care must be taken when
            using
            naming containers in the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section. In such cases the value of the &amp;#8220;name&amp;#8221;
            attribute,
            or the values of the &amp;#8220;targets&amp;#8221; attribute must be
            used with a
            clientId relative to the &lt;em&gt;top level component&lt;/em&gt; to
            expose any
            attached object targets to the using page. For example:&lt;/p&gt;

            &lt;p&gt;Using page&lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;ez:loginButton&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;f:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;button&amp;quot;&lt;/span&gt; &lt;span
            class="kw3"&gt;binding&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;#{foo.actionListener}&amp;quot;&lt;/span&gt;
            /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/ez:loginButton&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;


            &lt;p&gt;loginButton.xhtml&lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;button&amp;quot;&lt;/span&gt; targets=&lt;span
            class="st0"&gt;&amp;quot;form:button&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;h:form &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;form&amp;quot;&lt;/span&gt;&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
            &lt;span class="sc2"&gt;&amp;lt;h:commandButton &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;button&amp;quot;&lt;/span&gt; &lt;span
            class="kw3"&gt;value&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;Submit&amp;quot;&lt;/span&gt;
            /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&lt;span class="kw2"&gt;&amp;lt;&lt;/span&gt;/h:form&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

            &lt;p&gt;Because the button on line 8 resides within a form, it must
            be
            referred to using a client id, relative to the &lt;em&gt;top level
            component&lt;/em&gt;, in the "targets" attribute on line 2. Using a
            relative
            clientId is required due to the semantics of
            &lt;code&gt;UIComponent.findComponent()&lt;/code&gt;.&lt;/p&gt;

            &lt;/div&gt;

        </description>
        <tag-name>interface</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.InterfaceHandler</handler-class>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;The name of this composite component.
                Advisory only. The real name is taken from the
                filename. The value of this attribute will be set as
                the value for this property on the &lt;em&gt;composite
                component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>name</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;The &lt;code&gt;component-type&lt;/code&gt; of the &lt;code&gt;UIComponent&lt;/code&gt;
                that
                will serve as the &lt;em&gt;composite component root&lt;/em&gt;
                for this composite
                component. The declared &lt;code&gt;component-family&lt;/code&gt;
                for this
                component must be &lt;code&gt;javax.faces.NamingContainer&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>componentType</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;The name to display in a tool palette
                containing this component. The value of this attribute will be
                set as
                the value for this property on the &lt;em&gt;composite
                component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>displayName</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;Is this a "preferred" component. The value
                of this attribute will be set as the value for this
                property on the &lt;em&gt;composite component bean
                descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>preferred</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;Is this component only for expert users?
                The value of this attribute will be set as the value for
                this property on the &lt;em&gt;composite component bean
                descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>expert</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;A short description of the purpose of this
                component. The value of this attribute will be set as
                the value for this property on the &lt;em&gt;composite
                component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>shortDescription</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
    </tag>
    <tag>
        <description>

            &lt;div class="changed_added_2_0"&gt;
            &lt;p&gt;Defines the implementation of the composite
            component. There must be zero or one of these in a
            composite component markup file. If a
            &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; element
            appears,
            there must be a corresponding
            &lt;code&gt;&amp;lt;composite-implementation&amp;gt;&lt;/code&gt;
            element. If no
            &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; element
            appears,
            the &lt;code&gt;&amp;lt;composite-implementation&amp;gt;&lt;/code&gt;
            element is
            optional. &lt;/p&gt; &lt;/div&gt;
        </description>
        <tag-name>implementation</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.ImplementationHandler</handler-class>
    </tag>
    <tag>
        <description>


            &lt;div class="changed_added_2_0"&gt;
            &lt;p&gt;Declares an attribute that may be given to an instance of
            the
            &lt;em&gt;composite component&lt;/em&gt; tag for this composite
            component. There
            may be zero or many of these inside of the
            &lt;code&gt;&amp;lt;composite:interface&lt;/code&gt;&amp;gt;
            section. This element may be
            nested within other &lt;code&gt;&amp;lt;composite:attribute&amp;gt;&lt;/code&gt;
            elements to
            convey a usage contract that includes nested properties.&lt;/p&gt;

            &lt;p&gt;Please see &lt;a href="tld-summary.html#composite_example"&gt;summary
            page&lt;/a&gt; for a usage example.&lt;/p&gt;

            &lt;p&gt;The &lt;em&gt;top level component&lt;/em&gt; in which this
            element is
            ultimately nested must be a &lt;code&gt;NamingContainer&lt;/code&gt;.
            There are certain component properties that must not be
            exposed using this element. The motivation for this
            restriction is that the mapping of markup attributes to
            component properties/attributes does not allow for these
            attributes to be set. The following properties must not be
            exposed using this element.&lt;/p&gt;

            &lt;ul&gt;
            &lt;li&gt;&lt;p&gt;binding&lt;/p&gt;&lt;/li&gt;
            &lt;li&gt;&lt;p&gt;id&lt;/p&gt;&lt;/li&gt;
            &lt;li&gt;&lt;p&gt;inView&lt;/p&gt;&lt;/li&gt;
            &lt;li&gt;&lt;p&gt;parent&lt;/p&gt;&lt;/li&gt;
            &lt;li&gt;&lt;p&gt;rendered&lt;/p&gt;&lt;/li&gt;
            &lt;li&gt;&lt;p&gt;rendererType&lt;/p&gt;&lt;/li&gt;
            &lt;li&gt;&lt;p&gt;transient&lt;/p&gt;&lt;/li&gt;
            &lt;/ul&gt;

            &lt;/div&gt;
        </description>
        <tag-name>attribute</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.AttributeHandler</handler-class>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;The name of the attribute as it must appear on the &lt;em&gt;composite
                component tag&lt;/em&gt; in the &lt;em&gt;using page&lt;/em&gt;.
                If the value of the
                &lt;em&gt;name&lt;/em&gt; attribute is equal to (without the
                quotes)
                &amp;#8220;action&amp;#8221;, &amp;#8221;actionListener&amp;#8221;,
                &amp;#8220;validator&amp;#8221;, or &amp;#8220;valueChangeListener&amp;#8221;,
                the
                action described in &lt;a target="_"
                href="../../../javadocs/javax/faces/application/ViewHandler.html#retargetMethodExpressions(javax.faces.context.FacesContext,%20javax.faces.component.UIComponent)"&gt;ViewHandler.retargetMethodExpressions()&lt;/a&gt;
                must be taken to handle the attribute. In these cases, the
                &lt;code&gt;method-signature&lt;/code&gt; attribute, if present,
                must be ignored as
                its value is derived as described in
                &lt;code&gt;retargetMethodExpressions()&lt;/code&gt;.&lt;/div&gt;

            </description>
            <name>name</name>
            <required>true</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;

                &lt;p&gt;If this element has a &lt;code&gt;method-signature&lt;/code&gt;
                attribute, the
                value of the &lt;code&gt;targets&lt;/code&gt; attribute must be
                interpreted as a
                space (not tab) separated list of client ids (relative to the
                &lt;em&gt;top
                level component&lt;/em&gt;) of components within the
                &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
                section. Space is used as
                the delimiter for compatibility with the IDREFS and NMTOKENS
                data types
                from the XML Schema. Each entry in the list must be interpreted
                as the
                id of an inner component to which the &lt;code&gt;MethodExpression&lt;/code&gt;
                from
                the &lt;em&gt;composite component tag&lt;/em&gt; in the &lt;em&gt;using
                page&lt;/em&gt; must be
                applied. If this element has a &lt;code&gt;method-signature&lt;/code&gt;
                attribute,
                but no &lt;code&gt;targets&lt;/code&gt; attribute, the value of
                the
                &lt;code&gt;name&lt;/code&gt; attribute is used as the single
                entry in the list. If
                the value of the &lt;code&gt;name&lt;/code&gt; attribute is &lt;strong&gt;not&lt;/strong&gt;
                one
                of the special values listed in the description of the &lt;code&gt;name
                attribute&lt;/code&gt;, &lt;code&gt;targets&lt;/code&gt; (or its
                derived value) need not
                correspond to the id of an inner component.&lt;/p&gt;

                &lt;/div&gt;

            </description>
            <name>targets</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;If this attribute is not required, and a
                value is not supplied by the page author, use this as
                the default value.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>default</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;The name to display in a tool palette
                containing this component. The value of this attribute will be
                set as
                the value for this property on the &lt;em&gt;composite
                component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>displayName</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;True if the page author must supply a value
                for this attribute.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>required</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;Is this a "preferred" component. The value
                of this attribute will be set as the value for this
                property on the &lt;em&gt;composite component bean
                descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>preferred</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;Is this component only for expert users?
                The value of this attribute will be set as the value for
                this property on the &lt;em&gt;composite component bean
                descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>expert</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;A short description of the purpose of this
                component. The value of this attribute will be set as
                the value for this property on the &lt;em&gt;composite
                component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>shortDescription</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;Declares that this attribute must be a &lt;code&gt;MethodExpression&lt;/code&gt;
                whose method signature is described by the value of this
                attribute. The
                signature must be described using fully qualified class names
                wherever a
                type is required. This attribute is mutually exclusive with the
                "type"
                attribute. If both attributes are present, the
                "method-signature"
                attribute is ignored.&lt;/p&gt;

                &lt;p&gt;PENDING: when this file is generated from the
                web-facesuicomponent_2_0.xsd, we will not need to copy the
                content here
                manually.&lt;/p&gt;

                &lt;p&gt;Provides the signature of the Java method. The syntax
                of
                the method-signature element is as follows (taken from
                function-signature in web-jsptaglibrary_2_1.xsd):&lt;/p&gt;

                &lt;p&gt;MethodSignature ::= ReturnType S MethodName S?
                '(' S? Parameters? S? ')'&lt;/p&gt;

                &lt;p&gt;ReturnType ::= Type&lt;/p&gt;

                &lt;p&gt;MethodName ::= Identifier&lt;/p&gt;

                &lt;p&gt;Parameters ::= Parameter
                | ( Parameter S? ',' S? Parameters )&lt;/p&gt;

                &lt;p&gt;Parameter ::= Type&lt;/p&gt;

                &lt;p&gt;Where:&lt;/p&gt;

                &lt;ul&gt;

                &lt;li&gt;&lt;p&gt;Type is a basic type or a fully qualified
                Java class name (including package name),
                as per the 'Type' production in the Java
                Language Specification, Second Edition,
                Chapter 18.&lt;/p&gt;&lt;/li&gt;

                &lt;li&gt;&lt;p&gt;Identifier is a Java identifier, as per
                the 'Identifier' production in the Java
                Language Specification, Second
                Edition, Chapter 18.&lt;/p&gt;&lt;/li&gt;

                &lt;/ul&gt;

                &lt;p&gt;Example:&lt;/p&gt;

                &lt;p&gt;&lt;code&gt;java.lang.String nickName(
                java.lang.String, int )&lt;/code&gt;&lt;/p&gt;


                &lt;/div&gt;

            </description>
            <name>method-signature</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;Declares that this attribute must be a &lt;code&gt;ValueExpression&lt;/code&gt;
                whose expected type is given by the value of this attribute. If
                not
                specified, and no "method-signature" attribute is present,
                &lt;code&gt;java.lang.Object&lt;/code&gt; is assumed. This
                attribute is mutually
                exclusive with the "type" attribute. If both attributes are
                present, the
                "method-signature" attribute is ignored. &lt;/p&gt; &lt;/div&gt;

            </description>
            <name>type</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
    </tag>
    <tag>
        <description>


            &lt;div class="changed_added_2_0"&gt;

            &lt;p&gt;Declares that this composite component supports a facet
            with the
            name given by the value of the "name" attribute. &lt;/p&gt;

            &lt;p&gt;Please see &lt;code&gt;&amp;lt;&lt;a
            href="interface.html"&gt;composite:interface&lt;/a&gt;&amp;gt;&lt;/code&gt;
            for a usage
            example.&lt;/p&gt;


            &lt;/div&gt;
        </description>
        <tag-name>facet</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.DeclareFacetHandler</handler-class>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;The name of the attribute as it must appear
                on the &lt;em&gt;composite component tag&lt;/em&gt; in the
                &lt;em&gt;using page&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>name</name>
            <required>true</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;The name to display in a tool palette
                containing this component. The value of this attribute will be
                set as
                the value for this property on the &lt;em&gt;composite
                component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>displayName</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;True if the page author must supply a facet with this
                name.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>required</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;Is this a "preferred" facet. The value
                of this attribute will be set as the value for this
                property on the &lt;em&gt;composite component bean
                descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>preferred</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;Is this facet only for expert users?
                The value of this attribute will be set as the value for
                this property on the &lt;em&gt;composite component bean
                descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>expert</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;A short description of the purpose of this
                facet. The value of this attribute will be set as
                the value for this property on the &lt;em&gt;composite
                component bean descriptor&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>shortDescription</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
    </tag>
    <tag>
        <description>


            &lt;div class="changed_added_2_0"&gt;

            &lt;p&gt;This element is used in the
            &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section. The facet with
            the name equal to the value of the name attribute, given by the page
            author in the using page, will be rendered at this point in the
            composite component PDL page. &lt;/p&gt;


            &lt;p&gt;The implementation of this tag handler must insert a
            component with &lt;code&gt;component-type&lt;/code&gt;
            &lt;code&gt;javax.faces.Output&lt;/code&gt; and &lt;code&gt;renderer-type&lt;/code&gt;
            &lt;code&gt;javax.faces.CompositeFacet&lt;/code&gt; as a
            child at this point in the component tree.&lt;/p&gt;

            &lt;p&gt;The implementation of this tag handler must store an
            attribute into
            the created component's attribute map under the key given by the
            value
            of the symbolic constant &lt;code&gt;UIComponent.FACETS_KEY&lt;/code&gt;.
            The value
            for this key must be the evaluated value of the "name" attribute.&lt;/p&gt;

            &lt;/div&gt;
        </description>
        <tag-name>renderFacet</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.RenderFacetHandler</handler-class>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;The value of the name attribute as it must appear on an
                &lt;code&gt;&amp;lt;f:facet&amp;gt;&lt;/code&gt; tag nested
                within the &lt;em&gt;composite
                component tag&lt;/em&gt; in the &lt;em&gt;using page&lt;/em&gt;.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>name</name>
            <required>true</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>

                &lt;div class="changed_added_2_0"&gt;

                &lt;p&gt;If &lt;code&gt;true&lt;/code&gt;, and there is no such
                facet present on the top
                level component, a &lt;code&gt;TagException&lt;/code&gt; must be
                thrown, containing
                the &lt;code&gt;Location&lt;/code&gt;, the facet name, and a
                localized descriptive
                error message.&lt;/p&gt;

                &lt;/div&gt;

            </description>
            <name>required</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
    </tag>
    <tag>
        <description>


            &lt;div class="changed_added_2_0"&gt;

            &lt;p&gt;This element is used in the
            &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section. Any child
            components or template text within the composite component tag in
            the
            using page will be re-parented into the composite component at the
            point
            indicated by this tag's placement within the
            &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section. The normal
            use-case for this element is to have only one occurrence within the
            &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section. Inserting
            multiple occurrences may cause duplicate id errors. The results are
            undefined if there are multiple occurrences of this element in the
            &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section.&lt;/p&gt;

            &lt;/div&gt;
        </description>
        <tag-name>insertChildren</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.InsertChildrenHandler</handler-class>
    </tag>
    <tag>
        <description>


            &lt;div class="changed_added_2_0"&gt;
            &lt;p&gt;Declares that the composite component whose
            contract is declared by the
            &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; in
            which this
            element is nested exposes an implementation of
            &lt;code&gt;ValueHolder&lt;/code&gt; suitable for use as the target
            of
            &lt;em&gt;attached objects&lt;/em&gt; in &lt;em&gt;the using page&lt;/em&gt;.
            Any attached objects suitable for implementations of
            &lt;code&gt;ValueHolder&lt;/code&gt; may be attached to the
            composite
            component. Consider this excerpt from &lt;em&gt;the using
            page&lt;/em&gt;:
            &lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;ez:foo&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;f:converter &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;userid&amp;quot;&lt;/span&gt; binding=&lt;span
            class="st0"&gt;&amp;quot;#{bean.converter}&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/ez:foo&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

            &lt;p&gt;Line 2 refers to the
            &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;
            declaration on
            line 2 of &lt;code&gt;foo.xhtml&lt;/code&gt;:&lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;composite:valueHolder &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;userid&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;h:inputText &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;userid&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

            &lt;p&gt;&lt;/p&gt;

            &lt;p&gt;It is possible to declare that a single
            &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;
            element should cause multiple
            components within the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section to be the targets of an &lt;em&gt;attached object&lt;/em&gt;
            in the
            using page. Assuming the same &lt;em&gt;using page&lt;/em&gt;
            excerpt as
            above, the revised &lt;em&gt;PDL page&lt;/em&gt; is:&lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;composite:valueHolder targets=&lt;span
            class="st0"&gt;&amp;quot;userid,password&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:implementation&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;h:inputText &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;userid&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;h:inputText &lt;span class="kw3"&gt;id&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;password&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:implementation&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

            &lt;p&gt;In this case, the "targets" attribute on the
            &lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;
            element, on line 2 above,
            replaces the "name" attribute in the previous example. "targets" is
            a
            list of ids of client ids (relative to the &lt;em&gt;top level
            component&lt;/em&gt;)
            within the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section. In
            this case, "targets" refers to the &lt;code&gt;&amp;lt;h:inputText&amp;gt;&lt;/code&gt;
            components on lines 6 and 7 above.&lt;/p&gt;

            &lt;p&gt;Please see &lt;code&gt;&amp;lt;&lt;a
            href="interface.html"&gt;composite:interface&lt;/a&gt;&amp;gt;&lt;/code&gt;
            for a usage
            example.&lt;/p&gt;

            &lt;/div&gt;
        </description>
        <tag-name>valueHolder</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.ValueHolderAttachedObjectTargetHandler</handler-class>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;
                The value of this attribute maps back to the "for" attribute on
                an attachable object
                nested within a composite component. If the "targets" attribute
                is not specified,
                this value also represents the component ID of the target
                component within the
                that the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
                ActionListener should be mapped to.
                &lt;/p&gt;
                &lt;/div&gt;

            </description>
            <name>name</name>
            <required>true</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;If present, this must be a space (not tab) separated
                list of client
                ids (relative to the &lt;em&gt;top level component&lt;/em&gt;)
                of components within
                the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
                section. Space is
                used as the delimiter for compatibility with the IDREFS and
                NMTOKENS
                data types from the XML Schema. &lt;/p&gt;&lt;/div&gt;

            </description>
            <name>targets</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
    </tag>
    <tag>
        <description>


            &lt;div class="changed_added_2_0"&gt;
            &lt;p&gt;Declares that the composite component whose
            contract is declared by the
            &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; in
            which this
            element is nested exposes an implementation of
            &lt;code&gt;EditableValueHolder&lt;/code&gt; suitable for use as the
            target of &lt;em&gt;attached objects&lt;/em&gt; in &lt;em&gt;the
            using
            page&lt;/em&gt;. Any attached objects suitable for
            implementations of &lt;code&gt;EditableValueHolder&lt;/code&gt; may
            be
            attached to the composite component.The example from &lt;a
            href="valueHolder.html"&gt;&lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;&lt;/a&gt;
            still applies.
            &lt;/p&gt;

            &lt;p&gt;Please see &lt;code&gt;&amp;lt;&lt;a
            href="interface.html"&gt;composite:interface&lt;/a&gt;&amp;gt;&lt;/code&gt;
            for a usage
            example.&lt;/p&gt;

            &lt;/div&gt;
        </description>
        <tag-name>editableValueHolder</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.EditableValueHolderAttachedObjectTargetHandler</handler-class>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;
                The value of this attribute maps back to the "for" attribute on
                an attachable object
                nested within a composite component. If the "targets" attribute
                is not specified,
                this value also represents the component ID of the target
                component within the
                that the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
                ActionListener should be mapped to.
                &lt;/p&gt;
                &lt;/div&gt;

            </description>
            <name>name</name>
            <required>true</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;If present, this must be a space (not tab) separated
                list of client
                ids (relative to the &lt;em&gt;top level component&lt;/em&gt;)
                of components within
                the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
                section. Space is
                used as the delimiter for compatibility with the IDREFS and
                NMTOKENS
                data types from the XML Schema.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>targets</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
    </tag>
    <tag>
        <description>


            &lt;div class="changed_added_2_0"&gt;
            &lt;p&gt;Declares that the composite component whose
            contract is declared by the
            &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt; in
            which this
            element is nested exposes an implementation of
            &lt;code&gt;ActionSource2&lt;/code&gt; suitable for use as the
            target of
            &lt;em&gt;attached objects&lt;/em&gt; in &lt;em&gt;the using page&lt;/em&gt;.
            Any attached objects suitable for implementations of
            &lt;code&gt;ActionSource2&lt;/code&gt; may be attached to the
            composite
            component. Consider this excerpt from &lt;em&gt;the using
            page&lt;/em&gt;:
            &lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;ez:loginPanel &lt;span
            class="kw3"&gt;id&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;loginPanel&amp;quot;&lt;/span&gt;
            model=&lt;span class="st0"&gt;&amp;quot;#{bean}&amp;quot;&lt;/span&gt;&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;f:valueChangeListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
            &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
            &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;
            &amp;nbsp; binding=&lt;span class="st0"&gt;&amp;quot;#{bean.useridValueChangeListener}&amp;quot;&lt;/span&gt;
            /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;f:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;loginEvent&amp;quot;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
            &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
            &amp;nbsp; &amp;nbsp; binding=&lt;span class="st0"&gt;&amp;quot;#{bean.loginEventListener}&amp;quot;&lt;/span&gt;
            /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;f:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;cancelEvent&amp;quot;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &amp;nbsp;
            &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
            &amp;nbsp; &amp;nbsp; binding=&lt;span class="st0"&gt;&amp;quot;#{bean.cancelEventListener}&amp;quot;&lt;/span&gt;
            /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;f:actionListener &lt;span class="kw3"&gt;for&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;allEvents&amp;quot;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &amp;nbsp;
            &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
            &amp;nbsp; &amp;nbsp; binding=&lt;span class="st0"&gt;&amp;quot;#{bean.allEventsListener}&amp;quot;&lt;/span&gt;
            /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/ez:loginPanel&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

            &lt;p&gt;The &lt;code&gt;&amp;lt;f:actionListener&amp;gt;&lt;/code&gt;
            elements on lines 4, 7, and 10
            refer to the &lt;em&gt;attached objects&lt;/em&gt; declared on lines
            2, 3 and 4 below.&lt;/p&gt;

            &lt;div class="syntax"&gt;&lt;div class="html4strict"
            style="font-family: monospace;"&gt;&lt;ol&gt;&lt;li class="li1"&gt;&lt;div
            class="de1"&gt;&lt;span class="sc2"&gt;&amp;lt;composite:interface
            &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span class="st0"&gt;&amp;quot;loginPanel&amp;quot;&lt;/span&gt;&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;loginEvent&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;cancelEvent&amp;quot;&lt;/span&gt; /&lt;span
            class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li2"&gt;&lt;div class="de2"&gt;&amp;nbsp; &lt;span
            class="sc2"&gt;&amp;lt;composite:actionSource &lt;span class="kw3"&gt;name&lt;/span&gt;=&lt;span
            class="st0"&gt;&amp;quot;allEvents&amp;quot;&lt;/span&gt; targets=&lt;span
            class="st0"&gt;&amp;quot;loginEvent,cancelEvent&amp;quot;&lt;/span&gt;
            /&lt;span class="kw2"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
            &lt;li class="li1"&gt;&lt;div class="de1"&gt;&lt;span class="sc2"&gt;&lt;span
            class="kw2"&gt;&amp;lt;&lt;/span&gt;/composite:interface&amp;gt;&lt;/span&gt;
            &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;

            &lt;p&gt;Most of the concepts from example content from &lt;a
            href="valueHolder.html"&gt;&lt;code&gt;&amp;lt;composite:valueHolder&amp;gt;&lt;/code&gt;&lt;/a&gt;
            also applies in the case of
            &lt;code&gt;&amp;lt;composite:actionSource&amp;gt;&lt;/code&gt;.&lt;/p&gt;

            &lt;p&gt;Please see &lt;code&gt;&amp;lt;&lt;a
            href="interface.html"&gt;composite:interface&lt;/a&gt;&amp;gt;&lt;/code&gt;
            for a usage
            example.&lt;/p&gt;


            &lt;/div&gt;
        </description>
        <tag-name>actionSource</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.ActionSource2AttachedObjectTargetHandler</handler-class>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;
                The value of this attribute maps back to the "for" attribute on
                an attachable object
                nested within a composite component. If the "targets" attribute
                is not specified,
                this value also represents the component ID of the target
                component within the
                that the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
                ActionListener should be mapped to.
                &lt;/p&gt;
                &lt;/div&gt;

            </description>
            <name>name</name>
            <required>true</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>


                &lt;div class="changed_added_2_0"&gt;
                &lt;p&gt;If present, this must be a space (not tab) separated
                list of client
                ids (relative to the &lt;em&gt;top level component&lt;/em&gt;)
                of components within
                the &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
                section. Space is
                used as the delimiter for compatibility with the IDREFS and
                NMTOKENS
                data types from the XML Schema.&lt;/p&gt;&lt;/div&gt;

            </description>
            <name>targets</name>
            <required>false</required>
            <type>java.lang.String</type>
        </attribute>
    </tag>
    <tag>
        <description>


            &lt;div class="changed_added_2_0"&gt;
            &lt;p&gt;Used within a &lt;code&gt;&amp;lt;composite:interface&amp;gt;&lt;/code&gt;
            section,
            within any sub-element of that section, to include XML content not
            defined by this specification. This element can be used to
            incorporate
            &lt;a target="_" href="http://jcp.org/en/jsr/detail?id=276"&gt;JSR-276&lt;/a&gt;
            metadata into a composite component.&lt;/p&gt;

            &lt;/div&gt;
        </description>
        <tag-name>extension</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.ExtensionHandler</handler-class>
    </tag>
    <tag>
        <description>

            &lt;div class="changed_added_2_0"&gt;

            &lt;p&gt;The presence of this tag in a
            &lt;code&gt;&amp;lt;composite:implementation&amp;gt;&lt;/code&gt;
            section must cause the
            named facet to be taken from the facet map of the &lt;em&gt;top
            level
            component&lt;/em&gt; and inserted as a facet child of the component
            in which
            this element is nested.&lt;/p&gt;

            &lt;/div&gt;

        </description>
        <tag-name>insertFacet</tag-name>
        <handler-class>com.sun.faces.facelets.tag.composite.InsertFacetHandler</handler-class>
        <attribute>
            <description>

                &lt;div class="changed_added_2_0"&gt;

                &lt;p&gt;The name of the facet child on the &lt;em&gt;top level
                component&lt;/em&gt; which
                must be inserted as a facet child of the component in which this
                element
                is nested.&lt;/p&gt;

                &lt;/div&gt;

            </description>
            <name>name</name>
            <required>true</required>
            <type>java.lang.String</type>
        </attribute>
        <attribute>
            <description>

                &lt;div class="changed_added_2_0"&gt;

                &lt;p&gt;If &lt;code&gt;true&lt;/code&gt;, and there is no such
                facet present on the top
                level component, a &lt;code&gt;TagException&lt;/code&gt; must be
                thrown, containing
                the &lt;code&gt;Location&lt;/code&gt;, the facet name, and a
                localized descriptive
                error message.&lt;/p&gt;

                &lt;/div&gt;

            </description>
            <name>required</name>
            <required>false</required>
            <type>boolean</type>
        </attribute>
    </tag>
</facelet-taglib>
