<?xml version="1.0" encoding="UTF-8"?>
<!--
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 
 Copyright 1997-2007 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.
-->
<!-- =========== FULL CONFIGURATION FILE ================================== -->
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xi="http://www.w3.org/2001/XInclude" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" version="1.2">
  <!-- Generic User Interface Components -->
  <component>
    <component-type>javax.faces.Column</component-type>
    <component-class>javax.faces.component.UIColumn</component-class>
    <facet>
      <facet-name>header</facet-name>
    </facet>
    <facet>
      <facet-name>footer</facet-name>
    </facet>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Column</component-family>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Command</component-type>
    <component-class>javax.faces.component.UICommand</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing the application action to invoke
          when this component is activated by the user.  The expression
          must evaluate to a public method that takes no parameters, and
          returns an Object (the toString() of which is called to derive
          the logical outcome) which is passed to the NavigationHandler
          for this application.
        </description>
      <display-name>Application Action</display-name>
      <icon/>
      <property-name>action</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                java.lang.Object action()
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing an action listener method that will be
          notified when this component is activated by the user.  The
          expression must evaluate to a public method that takes an
          ActionEvent parameter, with a return type of void.
        </description>
      <display-name>Action Listener</display-name>
      <icon/>
      <property-name>actionListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void actionListener(javax.faces.event.ActionEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that, if this component is activated by the user,
          notifications should be delivered to interested listeners and actions
          immediately (that is, during Apply Request Values phase) rather than
          waiting until Invoke Application phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Command</component-family>
      <renderer-type>javax.faces.Button</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Data</component-type>
    <component-class>javax.faces.component.UIData</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Zero-relative row number of the first row to be displayed.  If this
          property is set to zero, rendering will begin with the first row of
          the underlying data.
        </description>
      <display-name>First Row Index</display-name>
      <icon/>
      <property-name>first</property-name>
      <property-class>int</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether there is model data available for the row
          selected by the current value of the "rowIndex" property.
        </description>
      <display-name>Row Available Flag</display-name>
      <icon/>
      <property-name>rowAvailable</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The number of rows of model data that are available for processing
          by this component.  If the number of rows is unknown, this property
          will be set to -1.
        </description>
      <display-name>Row Count</display-name>
      <icon/>
      <property-name>rowCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          An object representing the model data for the row selected by the
          current value of the "rowIndex" property.
        </description>
      <display-name>Row Data</display-name>
      <icon/>
      <property-name>rowData</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Zero-relative index of the currently selected row from the underlying
          model data.  No error will occur if this property is set to point at
          a row for which no model data exists.  To ensure data availability,
          check the state of the "rowAvailable" property after modifying this
          property.
        </description>
      <display-name>Row Index</display-name>
      <icon/>
      <property-name>rowIndex</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The number of rows to display, starting with the one identified by the
          "first" property.  If this value is set to zero, all available rows in
          the underlying data model will be displayed.
        </description>
      <display-name>Rows To Display</display-name>
      <icon/>
      <property-name>rows</property-name>
      <property-class>int</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Name of a request-scope attribute under which the model data for the
          row selected by the current value of the "rowIndex" property (i.e.
          also the current value of the "rowData" property) will be exposed.
        </description>
      <display-name>Row Data Attribute</display-name>
      <icon/>
      <property-name>var</property-name>
      <property-class>java.lang.String</property-class>
    </property>

    <component-extension>
      <component-family>javax.faces.Data</component-family>
      <renderer-type>javax.faces.Table</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Form</component-type>
    <component-class>javax.faces.component.UIForm</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this form was the one submitted by
          the user.  If this flag is not set, child input components are not
          processed.
        </description>
      <display-name>Submitted Flag</display-name>
      <icon/>
      <property-name>submitted</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this form should prepend its id
          to its descendent's id during the clientId generation process.
          If this flag is not set, the default value is true.
        </description>
      <display-name>Prepend Id During getClientId()</display-name>
      <icon/>
      <property-name>prependId</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>true</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Form</component-family>
      <renderer-type>javax.faces.Form</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Graphic</component-type>
    <component-class>javax.faces.component.UIGraphic</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Context-relative URL to retrieve the resource associated with
          this component.  This is an alias for the "value" property.
        </description>
      <display-name>Source URL</display-name>
      <icon/>
      <property-name>url</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Graphic</component-family>
      <renderer-type>javax.faces.Image</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Input</component-type>
    <component-class>javax.faces.component.UIInput</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Message</component-type>
    <component-class>javax.faces.component.UIMessage</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Client identifier of the component for which to display messages.
        </description>
      <display-name>Associated Client Id</display-name>
      <icon/>
      <property-name>for</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <required>true</required>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the summary portion of displayed messages
          should be included.  Default value is "true".
        </description>
      <display-name>Show Detail</display-name>
      <icon/>
      <property-name>showDetail</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>true</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the summary portion of displayed messages
          should be included.  Default value is "false".
        </description>
      <display-name>Show Summary</display-name>
      <icon/>
      <property-name>showSummary</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>false</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Message</component-family>
      <renderer-type>javax.faces.Message</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Messages</component-type>
    <component-class>javax.faces.component.UIMessages</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that only global messages (that is, messages not
          associated with any client identifier) are to be displayed.
          Default value is "false".
        </description>
      <display-name>Global Only</display-name>
      <icon/>
      <property-name>globalOnly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>false</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the summary portion of displayed messages
          should be included.  Default value is "false".
        </description>
      <display-name>Show Detail</display-name>
      <icon/>
      <property-name>showDetail</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>false</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the summary portion of displayed messages
          should be included.  Default value is "true".
        </description>
      <display-name>Show Summary</display-name>
      <icon/>
      <property-name>showSummary</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>true</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Messages</component-family>
      <renderer-type>javax.faces.Messages</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.NamingContainer</component-type>
    <component-class>javax.faces.component.UINamingContainer</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.NamingContainer</component-family>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Output</component-type>
    <component-class>javax.faces.component.UIOutput</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Panel</component-type>
    <component-class>javax.faces.component.UIPanel</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Panel</component-family>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.Parameter</component-type>
    <component-class>javax.faces.component.UIParameter</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Name of the parameter associated with this component.
        </description>
      <display-name>Property Name</display-name>
      <icon/>
      <property-name>name</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Value of the parameter associated with this component.
        </description>
      <display-name>Property Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.Parameter</component-family>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.SelectBoolean</component-type>
    <component-class>javax.faces.component.UISelectBoolean</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
            Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
            For output components, this is the same as the "value" property.
            For input components, this is the most recently user-entered
            value, which will be pushed to the application data model during
            Update Model Values phase, if a value binding is present for the
            "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
            The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
            Flag indicating whether the user has selected this component.
            This is an alias for the "value" property.
        </description>
      <display-name>Selected Flag</display-name>
      <icon/>
      <property-name>selected</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.SelectBoolean</component-family>
      <renderer-type>javax.faces.Checkbox</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.SelectItem</component-type>
    <component-class>javax.faces.component.UISelectItem</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Description of the selection item represented by this component.
          This property may be used by tools.
        </description>
      <display-name>Item Description</display-name>
      <icon/>
      <property-name>itemDescription</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Flag indicating that the selection item represented by this component
          must be rendered as disabled.
        </description>
      <display-name>Item Disabled</display-name>
      <icon/>
      <property-name>itemDisabled</property-name>
      <property-class>boolean</property-class>
    </property>
    <property>
      <description>
          Label of the selection item represented by this component.  This
          property is displayed to the user when the containing input
          component is rendered.
        </description>
      <display-name>Item Label</display-name>
      <icon/>
      <property-name>itemLabel</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The value returned to the server when a user chooses the selection
          item represented by this component.
        </description>
      <display-name>Item Value</display-name>
      <icon/>
      <property-name>itemValue</property-name>
      <property-class>java.lang.Object</property-class>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.SelectItem</component-family>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.SelectItems</component-type>
    <component-class>javax.faces.component.UISelectItems</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.SelectItems</component-family>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.SelectMany</component-type>
    <component-class>javax.faces.component.UISelectMany</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Array containing the selected values for this component.
          This is an alias for the "value" property.
        </description>
      <display-name>Selected Values</display-name>
      <icon/>
      <property-name>selectedValues</property-name>
      <property-class>java.lang.Object[]</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.SelectMany</component-family>
      <renderer-type>javax.faces.Listbox</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.SelectOne</component-type>
    <component-class>javax.faces.component.UISelectOne</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.SelectOne</component-family>
      <renderer-type>javax.faces.Menu</renderer-type>
    </component-extension>
  </component>
  <component>
    <component-type>javax.faces.ViewRoot</component-type>
    <component-class>javax.faces.component.UIViewRoot</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Locale to be used in localizing the rendered output of this view.
        </description>
      <display-name>Locale</display-name>
      <icon/>
      <property-name>locale</property-name>
      <property-class>java.util.Locale</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier of the RenderKit being used to display this view.
        </description>
      <display-name>Render Kit Id</display-name>
      <icon/>
      <property-name>renderKitId</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier of the view represented by this component tree.
        </description>
      <display-name>View Id</display-name>
      <icon/>
      <property-name>viewId</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>

    <component-extension>
      <component-family>javax.faces.ViewRoot</component-family>
    </component-extension>
  </component>
  <!-- Concrete HTML Components -->
  <component>
    <description><![CDATA[<p>Represents a column that will be rendered 
      in an HTML <code>table</code> element.</p>]]></description>
    <display-name>Column</display-name>
    <component-type>javax.faces.HtmlColumn</component-type>
    <component-class>javax.faces.component.html.HtmlColumn</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>


    <property>
      <description>
          Space-separated list of CSS style class(es) that will be
          applied to any header generated for this column.
        </description>
      <display-name>Header CSS Classes</display-name>
      <icon/>
      <property-name>headerClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) that will be
          applied to any footer generated for this column.
        </description>
      <display-name>Footer CSS Classes</display-name>
      <icon/>
      <property-name>footerClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Column</base-component-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>input</code> element
      for a button of type <code>submit</code> or <code>reset</code>.
      The label text is specified by the component value.</p>]]></description>
    <display-name>Command Button</display-name>
    <component-type>javax.faces.HtmlCommandButton</component-type>
    <component-class>javax.faces.component.html.HtmlCommandButton</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing the application action to invoke
          when this component is activated by the user.  The expression
          must evaluate to a public method that takes no parameters, and
          returns an Object (the toString() of which is called to derive
          the logical outcome) which is passed to the NavigationHandler
          for this application.
        </description>
      <display-name>Application Action</display-name>
      <icon/>
      <property-name>action</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                java.lang.Object action()
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing an action listener method that will be
          notified when this component is activated by the user.  The
          expression must evaluate to a public method that takes an
          ActionEvent parameter, with a return type of void.
        </description>
      <display-name>Action Listener</display-name>
      <icon/>
      <property-name>actionListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void actionListener(javax.faces.event.ActionEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that, if this component is activated by the user,
          notifications should be delivered to interested listeners and actions
          immediately (that is, during Apply Request Values phase) rather than
          waiting until Invoke Application phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
        Alternate textual description of the
        element rendered by this component.
      </description>
      <display-name>Alternate Text</display-name>
      <icon/>
      <property-name>alt</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        Absolute or relative URL of the image
        to be displayed for this button.  If
        specified, this "input" element will be
        of type "image".  Otherwise, it will be
        of the type specified by the "type"
        property with a label specified by the
        "value" property.
      </description>
      <display-name>Image URL</display-name>
      <icon/>
      <property-name>image</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
         Type of button to create.  Valid values are "submit" and
         "reset".  If not specified, or not a valid value, the default
         value is "submit".
      </description>
      <display-name>Button Type</display-name>
      <icon/>
      <property-name>type</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <default-value>"submit"</default-value>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Command</base-component-type>
      <renderer-type>javax.faces.Button</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>a</code> element for a hyperlink that acts
      like a submit button.  This component must be placed inside
      a form, and requires JavaScript to be enabled in the client.</p>]]></description>
    <display-name>Command Hyperlink</display-name>
    <component-type>javax.faces.HtmlCommandLink</component-type>
    <component-class>javax.faces.component.html.HtmlCommandLink</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing the application action to invoke
          when this component is activated by the user.  The expression
          must evaluate to a public method that takes no parameters, and
          returns an Object (the toString() of which is called to derive
          the logical outcome) which is passed to the NavigationHandler
          for this application.
        </description>
      <display-name>Application Action</display-name>
      <icon/>
      <property-name>action</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                java.lang.Object action()
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing an action listener method that will be
          notified when this component is activated by the user.  The
          expression must evaluate to a public method that takes an
          ActionEvent parameter, with a return type of void.
        </description>
      <display-name>Action Listener</display-name>
      <icon/>
      <property-name>actionListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void actionListener(javax.faces.event.ActionEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that, if this component is activated by the user,
          notifications should be delivered to interested listeners and actions
          immediately (that is, during Apply Request Values phase) rather than
          waiting until Invoke Application phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          The character encoding of the resource designated
          by this hyperlink.
        </description>
      <display-name>Character Set</display-name>
      <icon/>
      <property-name>charset</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The position and shape of the hot spot on the screen
          (for use in client-side image maps).
        </description>
      <display-name>Coordinates</display-name>
      <icon/>
      <property-name>coords</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The language code of the resource designated
          by this hyperlink.
        </description>
      <display-name>Language</display-name>
      <icon/>
      <property-name>hreflang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The relationship from the current document
          to the anchor specified by this hyperlink.
          The value of this attribute is a space-separated
          list of link types.
        </description>
      <display-name>Relationship</display-name>
      <icon/>
      <property-name>rel</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A reverse link from the anchor specified
          by this hyperlink to the current document.
          The value of this attribute is a space-separated
          list of link types.
        </description>
      <display-name>Reverse Link</display-name>
      <icon/>
      <property-name>rev</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The shape of the hot spot on the screen
          (for use in client-side image maps).  Valid
          values are:  default (entire region); rect
          (rectangular region); circle (circular region);
          and poly (polygonal region).
        </description>
      <display-name>Shape</display-name>
      <icon/>
      <property-name>shape</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Name of a frame where the resource
          retrieved via this hyperlink is to
          be displayed.
        </description>
      <display-name>Target Frame</display-name>
      <icon/>
      <property-name>target</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The content type of the resource designated
          by this hyperlink.
        </description>
      <display-name>Content Type</display-name>
      <icon/>
      <property-name>type</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this element must never
          receive focus or be included in a subsequent
          submit.
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Command</base-component-type>
      <renderer-type>javax.faces.Link</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents a set of repeating data (segregated into
      columns by child UIColumn components) that will
      be rendered in an HTML <code>table</code> element.</p>]]></description>
    <display-name>Data Table</display-name>
    <component-type>javax.faces.HtmlDataTable</component-type>
    <component-class>javax.faces.component.html.HtmlDataTable</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Zero-relative row number of the first row to be displayed.  If this
          property is set to zero, rendering will begin with the first row of
          the underlying data.
        </description>
      <display-name>First Row Index</display-name>
      <icon/>
      <property-name>first</property-name>
      <property-class>int</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether there is model data available for the row
          selected by the current value of the "rowIndex" property.
        </description>
      <display-name>Row Available Flag</display-name>
      <icon/>
      <property-name>rowAvailable</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The number of rows of model data that are available for processing
          by this component.  If the number of rows is unknown, this property
          will be set to -1.
        </description>
      <display-name>Row Count</display-name>
      <icon/>
      <property-name>rowCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          An object representing the model data for the row selected by the
          current value of the "rowIndex" property.
        </description>
      <display-name>Row Data</display-name>
      <icon/>
      <property-name>rowData</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Zero-relative index of the currently selected row from the underlying
          model data.  No error will occur if this property is set to point at
          a row for which no model data exists.  To ensure data availability,
          check the state of the "rowAvailable" property after modifying this
          property.
        </description>
      <display-name>Row Index</display-name>
      <icon/>
      <property-name>rowIndex</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The number of rows to display, starting with the one identified by the
          "first" property.  If this value is set to zero, all available rows in
          the underlying data model will be displayed.
        </description>
      <display-name>Rows To Display</display-name>
      <icon/>
      <property-name>rows</property-name>
      <property-class>int</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Name of a request-scope attribute under which the model data for the
          row selected by the current value of the "rowIndex" property (i.e.
          also the current value of the "rowData" property) will be exposed.
        </description>
      <display-name>Row Data Attribute</display-name>
      <icon/>
      <property-name>var</property-name>
      <property-class>java.lang.String</property-class>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Name or code of the background color for this table.
        </description>
      <display-name>Background Color</display-name>
      <icon/>
      <property-name>bgcolor</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Width (in pixels) of the border to be drawn
          around this table.
        </description>
      <display-name>Table Border</display-name>
      <icon/>
      <property-name>border</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Definition of how much space the user agent should
          leave between the border of each cell and its contents.
        </description>
      <display-name>Cell Padding</display-name>
      <icon/>
      <property-name>cellpadding</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Definition of how much space the user agent should
          leave between the left side of the table and the
          leftmost column, the top of the table and the top of
          the top side of the topmost row, and so on for the
          right and bottom of the table.  It also specifies
          the amount of space to leave between cells.
        </description>
      <display-name>Cell Spacing</display-name>
      <icon/>
      <property-name>cellspacing</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Comma-delimited list of CSS style classes that will be applied
          to the columns of this table.  A space separated list of
          classes may also be specified for any individual column.  If
          the number of elements in this list is less than the number of
          columns specified in the "columns" attribute, no "class"
          attribute is output for each column greater than the number of
          elements in the list.  If the number of elements in the list
          is greater than the number of columns specified in the
          "columns" attribute, the elements at the posisiton in the list
          after the value of the "columns" attribute are ignored.
        </description>
      <display-name>Column CSS Classes</display-name>
      <icon/>
      <property-name>columnClasses</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) that will be
          applied to any footer generated for this table.
        </description>
      <display-name>Footer CSS Classes</display-name>
      <icon/>
      <property-name>footerClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Code specifying which sides of the frame surrounding
          this table will be visible.  Valid values are:
          none (no sides, default value); above (top side only);
          below (bottom side only); hsides (top and bottom sides
          only); vsides (right and left sides only); lhs (left
          hand side only); rhs (right hand side only); box
          (all four sides); and border (all four sides).
        </description>
      <display-name>Table Frame</display-name>
      <icon/>
      <property-name>frame</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) that will be
          applied to any caption generated for this table.
        </description>
      <display-name>Caption CSS Classes</display-name>
      <icon/>
      <property-name>captionClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to be applied when this caption is rendered.
        </description>
      <display-name>Caption CSS Styles</display-name>
      <icon/>
      <property-name>captionStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) that will be
          applied to any header generated for this table.
        </description>
      <display-name>Header CSS Classes</display-name>
      <icon/>
      <property-name>headerClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Comma-delimited list of CSS style classes that will be applied
          to the rows of this table.  A space separated list of classes
          may also be specified for any individual row.  Thes styles are
          applied, in turn, to each row in the table.  For example, if
          the list has two elements, the first style class in the list
          is applied to the first row, the second to the second row, the
          first to the third row, the second to the fourth row, etc.  In
          other words, we keep iterating through the list until we reach
          the end, and then we start at the beginning again.
        </description>
      <display-name>Row CSS Classes</display-name>
      <icon/>
      <property-name>rowClasses</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Code specifying which rules will appear between cells
          within this table.  Valid values are:  none (no rules,
          default value); groups (between row groups); rows
          (between rows only); cols (between columns only); and
          all (between all rows and columns).
        </description>
      <display-name>Table Rules</display-name>
      <icon/>
      <property-name>rules</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Summary of this table's purpose and structure, for
          user agents rendering to non-visual media such as
          speech and Braille.
        </description>
      <display-name>Table Summary</display-name>
      <icon/>
      <property-name>summary</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Width of the entire table, for visual user agents.
        </description>
      <display-name>Table Width</display-name>
      <icon/>
      <property-name>width</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Data</base-component-type>
      <renderer-type>javax.faces.Table</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>form</code> element.  Child input components
      will be submitted unless they have been disabled.</p>]]></description>
    <display-name>Form</display-name>
    <component-type>javax.faces.HtmlForm</component-type>
    <component-class>javax.faces.component.html.HtmlForm</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this form was the one submitted by
          the user.  If this flag is not set, child input components are not
          processed.
        </description>
      <display-name>Submitted Flag</display-name>
      <icon/>
      <property-name>submitted</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this form should prepend its id
          to its descendent's id during the clientId generation process.
          If this flag is not set, the default value is true.
        </description>
      <display-name>Prepend Id During getClientId()</display-name>
      <icon/>
      <property-name>prependId</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>true</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
        List of content types that a server processing this form
        will handle correctly
        </description>
      <display-name>Content Type</display-name>
      <icon/>
      <property-name>accept</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        List of character encodings for input data
        that are accepted by the server processing
        this form.
        </description>
      <display-name>Character Set</display-name>
      <icon/>
      <property-name>acceptcharset</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
        Content type used to submit the form to the server.  If not
        specified, the default value is
        "application/x-www-form-urlencoded".
        </description>
      <display-name>Encoding Type</display-name>
      <icon/>
      <property-name>enctype</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <default-value>"application/x-www-form-urlencoded"</default-value>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        Javascript code executed when this form is reset.
        </description>
      <display-name>Form Reset Script</display-name>
      <icon/>
      <property-name>onreset</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        Javascript code executed when this form is submitted.
        </description>
      <display-name>Form Submit Script</display-name>
      <icon/>
      <property-name>onsubmit</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        Name of a frame where the response
        retrieved after this form submit is to
        be displayed.
        </description>
      <display-name>Target Frame</display-name>
      <icon/>
      <property-name>target</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Form</base-component-type>
      <renderer-type>javax.faces.Form</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>img</code> element, used to retrieve
      and render a graphical image.</p>]]></description>
    <display-name>Graphic Image</display-name>
    <component-type>javax.faces.HtmlGraphicImage</component-type>
    <component-class>javax.faces.component.html.HtmlGraphicImage</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Context-relative URL to retrieve the resource associated with
          this component.  This is an alias for the "value" property.
        </description>
      <display-name>Source URL</display-name>
      <icon/>
      <property-name>url</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
        Alternate textual description of the
        element rendered by this component.
        </description>
      <display-name>Alternate Text</display-name>
      <icon/>
      <property-name>alt</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        Override for the height of this image.
        </description>
      <display-name>Image Height</display-name>
      <icon/>
      <property-name>height</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        Flag indicating that this image is to be used as a server side
        image map.  Such an image must be enclosed within a hyperlink
        ("a").  A value of false causes no attribute to be rendered, 
        while a value of true causes the attribute to be rendered as
        ismap="ismap".
        </description>
      <display-name>Image Map Flag</display-name>
      <icon/>
      <property-name>ismap</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        URI to a long description of the image
        represented by this element.
        </description>
      <display-name>Long Description</display-name>
      <icon/>
      <property-name>longdesc</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        The name of a client side image map (an HTML "map"
        element) for which this element provides the image.
        </description>
      <display-name>Use Image Map</display-name>
      <icon/>
      <property-name>usemap</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        Override for the width of this image.
        </description>
      <display-name>Image Width</display-name>
      <icon/>
      <property-name>width</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Graphic</base-component-type>
      <renderer-type>javax.faces.Image</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>input</code> element
      of type <code>hidden</code>.</p>]]></description>
    <display-name>Input Hidden</display-name>
    <component-type>javax.faces.HtmlInputHidden</component-type>
    <component-class>javax.faces.component.html.HtmlInputHidden</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Input</base-component-type>
      <renderer-type>javax.faces.Hidden</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>input</code> element
      of type <code>password</code>.  On a redisplay,
      any previously entered value will <em>not</em>
      be rendered (for security reasons) unless the
      <code>redisplay</code> property is set to
      <code>true</code>.</p>]]></description>
    <display-name>Input Secret</display-name>
    <component-type>javax.faces.HtmlInputSecret</component-type>
    <component-class>javax.faces.component.html.HtmlInputSecret</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
          Alternate textual description of the
          element rendered by this component.
        </description>
      <display-name>Alternate Text</display-name>
      <icon/>
      <property-name>alt</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        If the value of this attribute is "off", render "off" as the value
        of the attribute. This indicates that the  browser should
        disable its autocomplete feature for this component.  This is
        useful for components that perform autocompletion and do not
        want the browser interfering.  If this attribute is not set or the value 
        is "on", render nothing.
        </description>
      <display-name>Enable or disable browser autocompletion.</display-name>
      <icon/>
      <property-name>autocomplete</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The maximum number of characters that may
          be entered in this field.
        </description>
      <display-name>Maximum Length</display-name>
      <icon/>
      <property-name>maxlength</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The number of characters used to determine
          the width of this field.
        </description>
      <display-name>Field Width</display-name>
      <icon/>
      <property-name>size</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
        Flag indicating that any existing value
        in this field should be rendered when the
        form is created.  Because this is a potential
        security risk, password values are not
        displayed by default.
        </description>
      <display-name>Redisplay Flag</display-name>
      <icon/>
      <property-name>redisplay</property-name>
      <property-class>boolean</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Input</base-component-type>
      <renderer-type>javax.faces.Secret</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>input</code> element
      of type <code>text</code>.</p>]]></description>
    <display-name>Input Text</display-name>
    <component-type>javax.faces.HtmlInputText</component-type>
    <component-class>javax.faces.component.html.HtmlInputText</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
          Alternate textual description of the
          element rendered by this component.
        </description>
      <display-name>Alternate Text</display-name>
      <icon/>
      <property-name>alt</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        If the value of this attribute is "off", render "off" as the value
        of the attribute. This indicates that the  browser should
        disable its autocomplete feature for this component.  This is
        useful for components that perform autocompletion and do not
        want the browser interfering.  If this attribute is not set or the value 
        is "on", render nothing.
        </description>
      <display-name>Enable or disable browser autocompletion.</display-name>
      <icon/>
      <property-name>autocomplete</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The maximum number of characters that may
          be entered in this field.
        </description>
      <display-name>Maximum Length</display-name>
      <icon/>
      <property-name>maxlength</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The number of characters used to determine
          the width of this field.
        </description>
      <display-name>Field Width</display-name>
      <icon/>
      <property-name>size</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Input</base-component-type>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>textarea</code> element.</p>]]></description>
    <display-name>Input Textarea</display-name>
    <component-type>javax.faces.HtmlInputTextarea</component-type>
    <component-class>javax.faces.component.html.HtmlInputTextarea</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
        The number of columns to be displayed.
        </description>
      <display-name>Columns</display-name>
      <icon/>
      <property-name>cols</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
        The number of rows to be displayed.
        </description>
      <display-name>Rows</display-name>
      <icon/>
      <property-name>rows</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Input</base-component-type>
      <renderer-type>javax.faces.Textarea</renderer-type>
    </component-extension>
  </component>
  <component>
    <display-name>Message</display-name>
    <component-type>javax.faces.HtmlMessage</component-type>
    <component-class>javax.faces.component.html.HtmlMessage</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Client identifier of the component for which to display messages.
        </description>
      <display-name>Associated Client Id</display-name>
      <icon/>
      <property-name>for</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <required>true</required>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the summary portion of displayed messages
          should be included.  Default value is "true".
        </description>
      <display-name>Show Detail</display-name>
      <icon/>
      <property-name>showDetail</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>true</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the summary portion of displayed messages
          should be included.  Default value is "false".
        </description>
      <display-name>Show Summary</display-name>
      <icon/>
      <property-name>showSummary</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>false</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style class to apply to any message
          with a severity class of "ERROR".
        </description>
      <display-name>Error Class</display-name>
      <icon/>
      <property-name>errorClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to apply to any message
          with a severity class of "ERROR".
        </description>
      <display-name>Error Styles</display-name>
      <icon/>
      <property-name>errorStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style class to apply to any message
          with a severity class of "FATAL".
        </description>
      <display-name>Fatal Class</display-name>
      <icon/>
      <property-name>fatalClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to apply to any message
          with a severity class of "FATAL".
        </description>
      <display-name>Fatal Styles</display-name>
      <icon/>
      <property-name>fatalStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style class to apply to any message
          with a severity class of "INFO".
        </description>
      <display-name>Info Class</display-name>
      <icon/>
      <property-name>infoClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to apply to any message
          with a severity class of "INFO".
        </description>
      <display-name>Info Styles</display-name>
      <icon/>
      <property-name>infoStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Flag indicating whether the detail portion of the
          message should be displayed as a tooltip.
        </description>
      <display-name>Tooltip</display-name>
      <icon/>
      <property-name>tooltip</property-name>
      <property-class>boolean</property-class>
    </property>
    <property>
      <description>
          CSS style class to apply to any message
          with a severity class of "WARN".
        </description>
      <display-name>Warning Class</display-name>
      <icon/>
      <property-name>warnClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to apply to any message
          with a severity class of "WARN".
        </description>
      <display-name>Warning Styles</display-name>
      <icon/>
      <property-name>warnStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Message</base-component-type>
      <renderer-type>javax.faces.Message</renderer-type>
    </component-extension>
  </component>
  <component>
    <display-name>Messages</display-name>
    <component-type>javax.faces.HtmlMessages</component-type>
    <component-class>javax.faces.component.html.HtmlMessages</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that only global messages (that is, messages not
          associated with any client identifier) are to be displayed.
          Default value is "false".
        </description>
      <display-name>Global Only</display-name>
      <icon/>
      <property-name>globalOnly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>false</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the summary portion of displayed messages
          should be included.  Default value is "false".
        </description>
      <display-name>Show Detail</display-name>
      <icon/>
      <property-name>showDetail</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>false</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the summary portion of displayed messages
          should be included.  Default value is "true".
        </description>
      <display-name>Show Summary</display-name>
      <icon/>
      <property-name>showSummary</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>true</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style class to apply to any message
          with a severity class of "ERROR".
        </description>
      <display-name>Error Class</display-name>
      <icon/>
      <property-name>errorClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to apply to any message
          with a severity class of "ERROR".
        </description>
      <display-name>Error Styles</display-name>
      <icon/>
      <property-name>errorStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style class to apply to any message
          with a severity class of "FATAL".
        </description>
      <display-name>Fatal Class</display-name>
      <icon/>
      <property-name>fatalClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to apply to any message
          with a severity class of "FATAL".
        </description>
      <display-name>Fatal Styles</display-name>
      <icon/>
      <property-name>fatalStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style class to apply to any message
          with a severity class of "INFO".
        </description>
      <display-name>Info Class</display-name>
      <icon/>
      <property-name>infoClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to apply to any message
          with a severity class of "INFO".
        </description>
      <display-name>Info Styles</display-name>
      <icon/>
      <property-name>infoStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The type of layout markup to use when rendering
          error messages.  Valid values are "table" (an HTML
          table) and "list" (an HTML list).  If not specified,
          the default value is "list".
        </description>
      <display-name>Layout</display-name>
      <icon/>
      <property-name>layout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <default-value>"list"</default-value>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the detail portion of the
          message should be displayed as a tooltip.
        </description>
      <display-name>Tooltip</display-name>
      <icon/>
      <property-name>tooltip</property-name>
      <property-class>boolean</property-class>
    </property>
    <property>
      <description>
          CSS style class to apply to any message
          with a severity class of "WARN".
        </description>
      <display-name>Warning Class</display-name>
      <icon/>
      <property-name>warnClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to apply to any message
          with a severity class of "WARN".
        </description>
      <display-name>Warning Styles</display-name>
      <icon/>
      <property-name>warnStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Messages</base-component-type>
      <renderer-type>javax.faces.Messages</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents a component that looks up a localized message in a
      resource bundle, optionally uses it as a
      <code>MessageFormat</code> pattern string and substitutes in
      parameter values from nested <em>UIParameter</em> components, and
      renders the result.  If the "dir" or "lang" attributes are
      present, render a <code>span</code> element and pass them through
      as attributes on the span.</p>]]></description>
    <display-name>Output Format</display-name>
    <component-type>javax.faces.HtmlOutputFormat</component-type>
    <component-class>javax.faces.component.html.HtmlOutputFormat</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
        Flag indicating that characters that are sensitive
        in HTML and XML markup must be escaped.  This flag
        is set to "true" by default.
        </description>
      <display-name>Escape Characters</display-name>
      <icon/>
      <property-name>escape</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>true</default-value>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Output</base-component-type>
      <renderer-type>javax.faces.Format</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>label</code> element, used to define
      an accessible label for a corresponding input element.</p>]]></description>
    <display-name>Output Label</display-name>
    <component-type>javax.faces.HtmlOutputLabel</component-type>
    <component-class>javax.faces.component.html.HtmlOutputLabel</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
        Client identifier of the component for which this element
        is a label.
        </description>
      <display-name>Label For Identifier</display-name>
      <icon/>
      <property-name>for</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <required>false</required>
      </property-extension>
    </property>
    <property>
      <description>
        Flag indicating that characters that are sensitive
        in HTML and XML markup must be escaped.  If omitted, this
        flag is assumed to be "true".
        </description>
      <display-name>Escape Characters</display-name>
      <icon/>
      <property-name>escape</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>true</default-value>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Output</base-component-type>
      <renderer-type>javax.faces.Label</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>a</code> (hyperlink) element that may be
      used to link to an arbitrary URL defined by the <code>value</code>
      property.</p>]]></description>
    <display-name>Output Hyperlink</display-name>
    <component-type>javax.faces.HtmlOutputLink</component-type>
    <component-class>javax.faces.component.html.HtmlOutputLink</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          The character encoding of the resource designated
          by this hyperlink.
        </description>
      <display-name>Character Set</display-name>
      <icon/>
      <property-name>charset</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The position and shape of the hot spot on the screen
          (for use in client-side image maps).
        </description>
      <display-name>Coordinates</display-name>
      <icon/>
      <property-name>coords</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The language code of the resource designated
          by this hyperlink.
        </description>
      <display-name>Language</display-name>
      <icon/>
      <property-name>hreflang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The relationship from the current document
          to the anchor specified by this hyperlink.
          The value of this attribute is a space-separated
          list of link types.
        </description>
      <display-name>Relationship</display-name>
      <icon/>
      <property-name>rel</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A reverse link from the anchor specified
          by this hyperlink to the current document.
          The value of this attribute is a space-separated
          list of link types.
        </description>
      <display-name>Reverse Link</display-name>
      <icon/>
      <property-name>rev</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The shape of the hot spot on the screen
          (for use in client-side image maps).  Valid
          values are:  default (entire region); rect
          (rectangular region); circle (circular region);
          and poly (polygonal region).
        </description>
      <display-name>Shape</display-name>
      <icon/>
      <property-name>shape</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Name of a frame where the resource
          retrieved via this hyperlink is to
          be displayed.
        </description>
      <display-name>Target Frame</display-name>
      <icon/>
      <property-name>target</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The content type of the resource designated
          by this hyperlink.
        </description>
      <display-name>Content Type</display-name>
      <icon/>
      <property-name>type</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this element must never
          receive focus or be included in a subsequent
          submit.
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Output</base-component-type>
      <renderer-type>javax.faces.Link</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Renders the component value as text, optionally wrapping in a
      <code>span</code> element if I18N attributes, CSS styles or style
      classes are specified.</p>]]></description>
    <display-name>Output Text</display-name>
    <component-type>javax.faces.HtmlOutputText</component-type>
    <component-class>javax.faces.component.html.HtmlOutputText</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
        Flag indicating that characters that are sensitive
        in HTML and XML markup must be escaped.  This flag
        is set to "true" by default.
        </description>
      <display-name>Escape Characters</display-name>
      <icon/>
      <property-name>escape</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <default-value>true</default-value>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Output</base-component-type>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Renders child components in a table, starting a new
      row after the specified number of columns.</p>]]></description>
    <display-name>Panel Grid</display-name>
    <component-type>javax.faces.HtmlPanelGrid</component-type>
    <component-class>javax.faces.component.html.HtmlPanelGrid</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Name or code of the background color for this table.
        </description>
      <display-name>Background Color</display-name>
      <icon/>
      <property-name>bgcolor</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Width (in pixels) of the border to be drawn
          around this table.
        </description>
      <display-name>Table Border</display-name>
      <icon/>
      <property-name>border</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Definition of how much space the user agent should
          leave between the border of each cell and its contents.
        </description>
      <display-name>Cell Padding</display-name>
      <icon/>
      <property-name>cellpadding</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Definition of how much space the user agent should
          leave between the left side of the table and the
          leftmost column, the top of the table and the top of
          the top side of the topmost row, and so on for the
          right and bottom of the table.  It also specifies
          the amount of space to leave between cells.
        </description>
      <display-name>Cell Spacing</display-name>
      <icon/>
      <property-name>cellspacing</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Comma-delimited list of CSS style classes that will be applied
          to the columns of this table.  A space separated list of
          classes may also be specified for any individual column.  If
          the number of elements in this list is less than the number of
          columns specified in the "columns" attribute, no "class"
          attribute is output for each column greater than the number of
          elements in the list.  If the number of elements in the list
          is greater than the number of columns specified in the
          "columns" attribute, the elements at the posisiton in the list
          after the value of the "columns" attribute are ignored.
        </description>
      <display-name>Column CSS Classes</display-name>
      <icon/>
      <property-name>columnClasses</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) that will be
          applied to any footer generated for this table.
        </description>
      <display-name>Footer CSS Classes</display-name>
      <icon/>
      <property-name>footerClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Code specifying which sides of the frame surrounding
          this table will be visible.  Valid values are:
          none (no sides, default value); above (top side only);
          below (bottom side only); hsides (top and bottom sides
          only); vsides (right and left sides only); lhs (left
          hand side only); rhs (right hand side only); box
          (all four sides); and border (all four sides).
        </description>
      <display-name>Table Frame</display-name>
      <icon/>
      <property-name>frame</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) that will be
          applied to any caption generated for this table.
        </description>
      <display-name>Caption CSS Classes</display-name>
      <icon/>
      <property-name>captionClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style(s) to be applied when this caption is rendered.
        </description>
      <display-name>Caption CSS Styles</display-name>
      <icon/>
      <property-name>captionStyle</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) that will be
          applied to any header generated for this table.
        </description>
      <display-name>Header CSS Classes</display-name>
      <icon/>
      <property-name>headerClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Comma-delimited list of CSS style classes that will be applied
          to the rows of this table.  A space separated list of classes
          may also be specified for any individual row.  Thes styles are
          applied, in turn, to each row in the table.  For example, if
          the list has two elements, the first style class in the list
          is applied to the first row, the second to the second row, the
          first to the third row, the second to the fourth row, etc.  In
          other words, we keep iterating through the list until we reach
          the end, and then we start at the beginning again.
        </description>
      <display-name>Row CSS Classes</display-name>
      <icon/>
      <property-name>rowClasses</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Code specifying which rules will appear between cells
          within this table.  Valid values are:  none (no rules,
          default value); groups (between row groups); rows
          (between rows only); cols (between columns only); and
          all (between all rows and columns).
        </description>
      <display-name>Table Rules</display-name>
      <icon/>
      <property-name>rules</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Summary of this table's purpose and structure, for
          user agents rendering to non-visual media such as
          speech and Braille.
        </description>
      <display-name>Table Summary</display-name>
      <icon/>
      <property-name>summary</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Width of the entire table, for visual user agents.
        </description>
      <display-name>Table Width</display-name>
      <icon/>
      <property-name>width</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
        The number of columns to render before
        starting a new row.
        </description>
      <display-name>Columns</display-name>
      <icon/>
      <property-name>columns</property-name>
      <property-class>int</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Panel</base-component-type>
      <renderer-type>javax.faces.Grid</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Causes all child components of this component
      to be rendered.  This is useful in scenarios
      where a parent component is expecting a single
      component to be present, but the application
      wishes to render more than one.</p>]]></description>
    <display-name>Panel Group</display-name>
    <component-type>javax.faces.HtmlPanelGroup</component-type>
    <component-class>javax.faces.component.html.HtmlPanelGroup</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" property on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          The type of layout markup to use when rendering this group.
          If the value is "block" the renderer must produce an HTML
          "div" element.  Otherwise HTML "span" element must
          be produced.
        </description>
      <display-name>Layout</display-name>
      <icon/>
      <property-name>layout</property-name>
      <property-class>java.lang.String</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.Panel</base-component-type>
      <renderer-type>javax.faces.Group</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents an HTML <code>input</code> element
      of type <code>checkbox</code>.  The checkbox will
      be rendered as checked, or not, based on the value
      of the <code>value</code> property.</p>]]></description>
    <display-name>Checkbox</display-name>
    <component-type>javax.faces.HtmlSelectBooleanCheckbox</component-type>
    <component-class>javax.faces.component.html.HtmlSelectBooleanCheckbox</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
            Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
            For output components, this is the same as the "value" property.
            For input components, this is the most recently user-entered
            value, which will be pushed to the application data model during
            Update Model Values phase, if a value binding is present for the
            "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
            The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
            Flag indicating whether the user has selected this component.
            This is an alias for the "value" property.
        </description>
      <display-name>Selected Flag</display-name>
      <icon/>
      <property-name>selected</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>

    <component-extension>
      <base-component-type>javax.faces.SelectBoolean</base-component-type>
      <renderer-type>javax.faces.Checkbox</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents a multiple-selection component that is rendered
      as a set of HTML <code>input</code> elements of type
      <code>checkbox</code>.</p>]]></description>
    <display-name>Multi-Select Checkbox</display-name>
    <component-type>javax.faces.HtmlSelectManyCheckbox</component-type>
    <component-class>javax.faces.component.html.HtmlSelectManyCheckbox</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Array containing the selected values for this component.
          This is an alias for the "value" property.
        </description>
      <display-name>Selected Values</display-name>
      <icon/>
      <property-name>selectedValues</property-name>
      <property-class>java.lang.Object[]</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
          Width (in pixels) of the border to be drawn
          around the table containing the options list.
        </description>
      <display-name>Table Border</display-name>
      <icon/>
      <property-name>border</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          CSS style class to apply to the rendered label
          on disabled options.
        </description>
      <display-name>Disabled Label Class</display-name>
      <icon/>
      <property-name>disabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style class to apply to the rendered label
          on enabled options.
        </description>
      <display-name>Enabled Label Class</display-name>
      <icon/>
      <property-name>enabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Orientation of the options list to be created.
          Valid values are "pageDirection" (list is laid
          out vertically), or "lineDirection" (list is
          laid out horizontally).  If not specified, the
          default value is "lineDirection".
        </description>
      <display-name>Layout</display-name>
      <icon/>
      <property-name>layout</property-name>
      <property-class>java.lang.String</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.SelectMany</base-component-type>
      <renderer-type>javax.faces.Checkbox</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents a multiple-selection component that is rendered
      as an HTML <code>select</code> element, showing either all
      available options or the specified number of options.</p>]]></description>
    <display-name>Multi-Select Listbox</display-name>
    <component-type>javax.faces.HtmlSelectManyListbox</component-type>
    <component-class>javax.faces.component.html.HtmlSelectManyListbox</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Array containing the selected values for this component.
          This is an alias for the "value" property.
        </description>
      <display-name>Selected Values</display-name>
      <icon/>
      <property-name>selectedValues</property-name>
      <property-class>java.lang.Object[]</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
         CSS style class to apply to the rendered label
         on disabled options.
        </description>
      <display-name>Disabled Label Class</display-name>
      <icon/>
      <property-name>disabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
         CSS style class to apply to the rendered label
         on enabled options.
        </description>
      <display-name>Enabled Label Class</display-name>
      <icon/>
      <property-name>enabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
        Number of available options to be shown at all times.
        If not specified, all available options are shown.
        </description>
      <display-name>Size</display-name>
      <icon/>
      <property-name>size</property-name>
      <property-class>int</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.SelectMany</base-component-type>
      <renderer-type>javax.faces.Listbox</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents a multiple-selection component that is rendered
      as an HTML <code>select</code> element, showing a single
      available option at a time.</p>]]></description>
    <display-name>Multi-Select Menu</display-name>
    <component-type>javax.faces.HtmlSelectManyMenu</component-type>
    <component-class>javax.faces.component.html.HtmlSelectManyMenu</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Array containing the selected values for this component.
          This is an alias for the "value" property.
        </description>
      <display-name>Selected Values</display-name>
      <icon/>
      <property-name>selectedValues</property-name>
      <property-class>java.lang.Object[]</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
         CSS style class to apply to the rendered label
         on disabled options.
        </description>
      <display-name>Disabled Label Class</display-name>
      <icon/>
      <property-name>disabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
         CSS style class to apply to the rendered label
         on enabled options.
        </description>
      <display-name>Enabled Label Class</display-name>
      <icon/>
      <property-name>enabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.SelectMany</base-component-type>
      <renderer-type>javax.faces.Menu</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents a single-selection component that is rendered
      as an HTML <code>select</code> element, showing either all
      available options or the specified number of options.</p>]]></description>
    <display-name>Listbox</display-name>
    <component-type>javax.faces.HtmlSelectOneListbox</component-type>
    <component-class>javax.faces.component.html.HtmlSelectOneListbox</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
         CSS style class to apply to the rendered label
         on disabled options.
        </description>
      <display-name>Disabled Label Class</display-name>
      <icon/>
      <property-name>disabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
         CSS style class to apply to the rendered label
         on enabled options.
        </description>
      <display-name>Enabled Label Class</display-name>
      <icon/>
      <property-name>enabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
        Number of available options to be shown at all times.
        If not specified, all available options are shown.
        </description>
      <display-name>Size</display-name>
      <icon/>
      <property-name>size</property-name>
      <property-class>int</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.SelectOne</base-component-type>
      <renderer-type>javax.faces.Listbox</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents a single-selection component that is rendered
      as an HTML <code>select</code> element, showing a single
      available option at a time.</p>]]></description>
    <display-name>Menu</display-name>
    <component-type>javax.faces.HtmlSelectOneMenu</component-type>
    <component-class>javax.faces.component.html.HtmlSelectOneMenu</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
         CSS style class to apply to the rendered label
         on disabled options.
        </description>
      <display-name>Disabled Label Class</display-name>
      <icon/>
      <property-name>disabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
         CSS style class to apply to the rendered label
         on enabled options.
        </description>
      <display-name>Enabled Label Class</display-name>
      <icon/>
      <property-name>enabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.SelectOne</base-component-type>
      <renderer-type>javax.faces.Menu</renderer-type>
    </component-extension>
  </component>
  <component>
    <description><![CDATA[<p>Represents a single-selection component that is rendered
      as a set of HTML <code>input</code> elements of type
      <code>radio</code>.</p>]]></description>
    <display-name>Radio</display-name>
    <component-type>javax.faces.HtmlSelectOneRadio</component-type>
    <component-class>javax.faces.component.html.HtmlSelectOneRadio</component-class>

    <property>
      <description>
          A mutable Map of the attributes associated with
          this component, keyed by attribute name.
        </description>
      <display-name>Attributes Map</display-name>
      <icon/>
      <property-name>attributes</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The number of child components associated with
          this component.
        </description>
      <display-name>Child Component Count</display-name>
      <icon/>
      <property-name>childCount</property-name>
      <property-class>int</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable List of the child components associated with
          this component.
        </description>
      <display-name>Child Component List</display-name>
      <icon/>
      <property-name>children</property-name>
      <property-class>java.util.List</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          A mutable Map of the facets associated with
          this component, keyed by facet name.
        </description>
      <display-name>Facets Map</display-name>
      <icon/>
      <property-name>facets</property-name>
      <property-class>java.util.Map</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component family to which this component belongs.  This property
          is used to select an appropriate Renderer.
        </description>
      <display-name>Component Family</display-name>
      <icon/>
      <property-name>family</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          The component identifier for this component.  This value must be
          unique within the closest parent component that is a naming
          container.
        </description>
      <display-name>Component Identifier</display-name>
      <icon/>
      <property-name>id</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          The parent component for this component.  On the root component
          in the component tree (which must be of type UIViewRoot), this
          property is null.
        </description>
      <display-name>Parent Component</display-name>
      <icon/>
      <property-name>parent</property-name>
      <property-class>javax.faces.component.UIComponent</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component should be rendered
          (during Render Response Phase), or processed on any subsequent
          form submit.  The default value for this property is true.
        </description>
      <display-name>Rendered Flag</display-name>
      <icon/>
      <property-name>rendered</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Identifier used (in conjunction with the "family" property) to
          select an appropriate Renderer to encode and decode this component.
        </description>
      <display-name>Renderer Type</display-name>
      <icon/>
      <property-name>rendererType</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not this component takes responsibility
          for rendering its own children.  This decision is normally delegated
          to the associated Renderer, if there is one.
        </description>
      <display-name>Renders Children</display-name>
      <icon/>
      <property-name>rendersChildren</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
        <read-only>true</read-only>
      </property-extension>
    </property>
    <property>
      <description>
          Converter instance registered with this component.
        </description>
      <display-name>Converter</display-name>
      <icon/>
      <property-name>converter</property-name>
      <property-class>javax.faces.convert.Converter</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          For output components, this is the same as the "value" property.
          For input components, this is the most recently user-entered
          value, which will be pushed to the application data model during
          Update Model Values phase, if a value binding is present for the
          "value" property.
        </description>
      <display-name>Local Value</display-name>
      <icon/>
      <property-name>localValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          The current value of this component.
        </description>
      <display-name>Value</display-name>
      <icon/>
      <property-name>value</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether the "localValue" property
          of this component has been set.  This property is
          reset automatically when the "value" propertyis set.
        </description>
      <display-name>Local Value Set</display-name>
      <icon/>
      <property-name>localValueSet</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that the user is required to provide a submitted
          value for this input component.
        </description>
      <display-name>Required Flag</display-name>
      <icon/>
      <property-name>required</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validation message for the "required"
          facility, if the "required" facility is used.
        </description>
      <display-name>Required Message</display-name>
      <icon/>
      <property-name>requiredMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the converter message, replacing any message
          that comes from the converter.
        </description>
      <display-name>Converter Message</display-name>
      <icon/>
      <property-name>converterMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          A ValueExpression enabled attribute that, if present, will be
          used as the text of the validator message, replacing any
          message that comes from the validator.
        </description>
      <display-name>Validator Message</display-name>
      <icon/>
      <property-name>validatorMessage</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          The value submitted for this input component by the user, prior to
          any required conversion or validation.
        </description>
      <display-name>Submitted Value</display-name>
      <icon/>
      <property-name>submittedValue</property-name>
      <property-class>java.lang.Object</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a validator method that will be called
          during Process Validations to perform correctness checks on the
          value of this component.  The expression must evaluate to a public
          method that takes FacesContext, UIComponent, and Object parameters,
          with a return type of void.
        </description>
      <display-name>Validator</display-name>
      <icon/>
      <property-name>validator</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          MethodExpression representing a value change listener method that will be
          notified when a new value has been set for this input component.  The
          expression must evaluate to a public method that takes a
          ValueChangeEvent parameter, with a return type of void.
        </description>
      <display-name>Value Change Listener</display-name>
      <icon/>
      <property-name>valueChangeListener</property-name>
      <property-class>javax.el.MethodExpression</property-class>
      <property-extension>
        <method-signature>
                void valueChange(javax.faces.event.ValueChangeEvent)
            </method-signature>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component's value must be
          converted and validated immediately (that is, during
          Apply Request Values phase), rather than waiting
          until Process Validations phase.
        </description>
      <display-name>Immediate Action</display-name>
      <icon/>
      <property-name>immediate</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <value-expression-enabled>true</value-expression-enabled>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating whether or not any required conversion or validation
          on this component value has been performed successfully.
        </description>
      <display-name>Valid Flag</display-name>
      <icon/>
      <property-name>valid</property-name>
      <property-class>valid</property-class>
      <property-extension>
        <tag-attribute>false</tag-attribute>
      </property-extension>
    </property>


    <property>
      <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
      <display-name>CSS Styles</display-name>
      <icon/>
      <property-name>style</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
      <display-name>CSS Style Classes</display-name>
      <icon/>
      <property-name>styleClass</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
      <display-name>Advisory Title</display-name>
      <icon/>
      <property-name>title</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
      <display-name>Button Click Script</display-name>
      <icon/>
      <property-name>onclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
      <display-name>Double Click Script</display-name>
      <icon/>
      <property-name>ondblclick</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
      <display-name>Mouse Down Script</display-name>
      <icon/>
      <property-name>onmousedown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
      <display-name>Mouse Up Script</display-name>
      <icon/>
      <property-name>onmouseup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
      <display-name>Mouse Over Script</display-name>
      <icon/>
      <property-name>onmouseover</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
      <display-name>Mouse Move Script</display-name>
      <icon/>
      <property-name>onmousemove</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
      <display-name>Mouse Out Script</display-name>
      <icon/>
      <property-name>onmouseout</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
      <display-name>Key Press Script</display-name>
      <icon/>
      <property-name>onkeypress</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
      <display-name>Key Down Script</display-name>
      <icon/>
      <property-name>onkeydown</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when a key is
          released over this element.
        </description>
      <display-name>Key Up Script</display-name>
      <icon/>
      <property-name>onkeyup</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
      <display-name>Access Key</display-name>
      <icon/>
      <property-name>accesskey</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus.
        </description>
      <display-name>Focus Off Script</display-name>
      <icon/>
      <property-name>onblur</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element receives focus.
        </description>
      <display-name>Focus On Script</display-name>
      <icon/>
      <property-name>onfocus</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
      <display-name>Tab Index</display-name>
      <icon/>
      <property-name>tabindex</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
      <display-name>Direction</display-name>
      <icon/>
      <property-name>dir</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
      <display-name>Language Code</display-name>
      <icon/>
      <property-name>lang</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>


    <property>
      <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
      <display-name>Disabled Flag</display-name>
      <icon/>
      <property-name>disabled</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
      <display-name>Input Change Script</display-name>
      <icon/>
      <property-name>onchange</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
      <display-name>Text Select Script</display-name>
      <icon/>
      <property-name>onselect</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
      <display-name>Read Only Flag</display-name>
      <icon/>
      <property-name>readonly</property-name>
      <property-class>boolean</property-class>
      <property-extension>
        <pass-through>false</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          A localized user presentable name for this component.
        </description>
      <display-name>Label</display-name>
      <icon/>
      <property-name>label</property-name>
      <property-class>java.lang.String</property-class>
      <property-extension>
        <renderer-attribute-ignore>true</renderer-attribute-ignore>
      </property-extension>
    </property>


    <property>
      <description>
          Width (in pixels) of the border to be drawn
          around the table containing the options list.
        </description>
      <display-name>Table Border</display-name>
      <icon/>
      <property-name>border</property-name>
      <property-class>int</property-class>
      <property-extension>
        <pass-through>true</pass-through>
      </property-extension>
    </property>
    <property>
      <description>
          CSS style class to apply to the rendered label
          on disabled options.
        </description>
      <display-name>Disabled Label Class</display-name>
      <icon/>
      <property-name>disabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          CSS style class to apply to the rendered label
          on enabled options.
        </description>
      <display-name>Enabled Label Class</display-name>
      <icon/>
      <property-name>enabledClass</property-name>
      <property-class>java.lang.String</property-class>
    </property>
    <property>
      <description>
          Orientation of the options list to be created.
          Valid values are "pageDirection" (list is laid
          out vertically), or "lineDirection" (list is
          laid out horizontally).  If not specified, the
          default value is "lineDirection".
        </description>
      <display-name>Layout</display-name>
      <icon/>
      <property-name>layout</property-name>
      <property-class>java.lang.String</property-class>
    </property>

    <component-extension>
      <base-component-type>javax.faces.SelectOne</base-component-type>
      <renderer-type>javax.faces.Radio</renderer-type>
    </component-extension>
  </component>
  <!-- Standard HTML Renderkit -->
  <render-kit>
    <description><![CDATA[
     The standard HTML RenderKit.  Please see the spec for additional
     details for the standard render-kit.

     <p>General notes on decoding</p>

     <ul>

     <p>Only Renderers for components which cause data to sent to the
     server on a page submit need to implement decode behavior.  In
     practical terms, this means Renderers for components that implement
     from <code>javax.faces.component.EditableValueHolder</code> or
     <code>javax.faces.component.ActionSource</code> or Renderers for
     <code>javax.faces.component.UIForm</code> components.  Renderers
     for components that do not send data to the server on page submit
     may choose to accept the no-op decode behavior of the
     <code>javax.faces.render.Renderer</code> abstract class.  In the
     Renderer descriptions that follow, the omission of a Decode
     Behavior section indicates that this Renderer does no decoding.</p>

     <p>If a Renderer chooses to implement decode behavior, it must
     consult the "disabled" and "readonly" attributes of the component
     to be rendered, if the value of either attribute is equal to,
     ignoring case, the string "true" (without the quotes) the decode
     method must take no action and return immediately.</p>

     </ul>

     <p>General notes on encoding</p>

     <ul>

     <p>If the value of the component's "rendered" property is false,
     the component, and its children must not be rendered.</p>

     <p>General notes regarding the <code>id</code> attribute</p>

     <ul>

     <p>All components, and therefore all tags for those components
     support the <code>id</code> attribute.  This attribute is optional.
     If not present its value is autogenerated by the implementation and
     used for internal purposes only.  If present, an <code>id</code>
     attribute must not start with the <code>String</code> listed as the
     value of the constant <code>UIViewRoot.UNIQUE_ID_PREFIX</code>, and
     it must be unique within the scope of the nearest component that is
     a <code>NamingContainer</code>.  </p>

     <p>All renderers must take the following action regarding the
     <code>id</code> attribute: If the value returned from
     <code>component.getId()</code> is non-<code>null</code> and does
     not start with <code>UIViewRoot.UNIQUE_ID_PREFIX</code>, call
     <code>component.getClientId()</code> and render the result as the
     value of the <code>id</code> attribute in the markup for the
     component.  See the javadoc for
     <code>component.getClientId()</code> for details, particularly note
     that the Renderer has a chance to modify the client id before it is
     rendered. If the component doesn't generate any markup elements,
     include the <code>id</code> attribte on a "span" element that
     encloses the content for the component.</p>

    <p>In addition to any action already specified in the renderers, all
    renderers for <code>UIInput</code> components must take the
    following action regarding the <code>id</code> attribute: Call
    <code>component.getClientId()</code> and render the result as the
    value of the <code>name</code> attribute.  This may cause some
    renderers to have "id" and "name" attributes that have exactly the
    same value.</p>

    </ul>

     <p>General notes regarding the rendering of JavaScript in the
     standard components.</p>

     <ul>

       <p>The intent of the standard renderkit is to specify the minimal
       Renderers a JSF implementation must provide.  As such, it is the
       baseline for building JSF applications that are maximally
       portable across JSF implementations and user agents.  Therefore,
       the use of JavaScript must be minimized as not all browsers
       support JavaScript, nor do all users enable JavaScript support in
       their user agents.</p>

       <p>Compliant implementations must only generate JavaScript in the
       <a href="javax.faces.Commandjavax.faces.Link.html">
       <code>javax.faces.Link</code></a> and <a
       href="javax.faces.Commandjavax.faces.Button.html"><code>javax.faces.Button</code></a>
       Renderers for the <code>javax.faces.Command</code></a> component.
       The generation of JavaScript in any other Renderer in the
       HTML_BASIC renderkit is not permitted.  However, any JavaScript
       code provided by the user as the value of a passthru attribute,
       such as "onmouseover", is excluded from this restriction.</p>

     </ul>



    </ul>]]></description>
    <renderer>
      <description><![CDATA[<p>Renders an HTML "input" element.</p>

      <p>Decode Behavior</p>

      <ul>

      <p>Obtain the <code>Map</code> from the "requestParameterMap"
      property of the <code>ExternalContext</code>.  If the value in the
      <code>Map</code> for the value of the "clientId" property of the
      component is <code>null</code>, create a String by concatenating
      the value of the "clientId" property of the component with the
      String ".x" (without the quotes).  Create another String in the
      same manner, but concatenate ".y" (without the quotes).  If
      <code>null</code> is the value in the <code>Map</code> for both
      Strings, return from <code>decode()</code>.  If the value in the
      <code>Map</code> for the value of the "clientId" property of the
      component is not <code>null</code>, get the value of the "type"
      attribute, and convert it to lower case.  If the result is equal
      to the String "reset" (without the quotes), return from
      <code>decode()</code>.  Otherwise, create a
      <code>javax.faces.event.ActionEvent</code> around the component,
      and pass it to the <code>queueEvent()</code> method of the
      component, which must be an instance of
      <code>UICommand</code>.</p>

      </ul>



      <p>Encode Behavior</p>

      <ul>

      <p>Render the clientId of the component as the value of the "name"
      attribute.  Render the current value of the component as the value
      of the "value" attribute. If "image" attribute is specified render
      it as the value of the "src" attribute after passing it to the
      <code>getResourceURL()</code> method of the
      <code>ViewHandler</code> for this application, and passing the
      result through the <code>encodeResourceURL()</code> method of the
      <code>ExternalContext</code>.  When handling the "image"
      attribute, the value must not be escaped.  For example,
      <code>&</code> must not be turned into <code>&amp;amp;</code>.  If the
      "styleClass" attribute is specified, render its value as the value
      of the "class" attribute.  If the user has specified an "onclick"
      attribute, append that JavaScript to any existing JavaScript before
      rendering.</p>

      </ul>
            ]]></description>
      <component-family>javax.faces.Command</component-family>
      <renderer-type>javax.faces.Button</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.ButtonRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
        Alternate textual description of the
        element rendered by this component.
      </description>
        <display-name>Alternate Text</display-name>
        <icon/>
        <attribute-name>alt</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        Absolute or relative URL of the image
        to be displayed for this button.  If
        specified, this "input" element will be
        of type "image".  Otherwise, it will be
        of the type specified by the "type"
        property with a label specified by the
        "value" property.
      </description>
        <display-name>Image URL</display-name>
        <icon/>
        <attribute-name>image</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
         Type of button to create.  Valid values are "submit" and
         "reset".  If not specified, or not a valid value, the default
         value is "submit".
      </description>
        <display-name>Button Type</display-name>
        <icon/>
        <attribute-name>type</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <default-value>"submit"</default-value>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Render an HTML "a" anchor element that acts like a
      form submit button when clicked.</p>

      <p>General Behaviour</p>

      <p>Both the encode and decode behavior require the ability to get
      the id/name for a hidden field whose value is set by the
      JavaScript form submit.  This name must be constructed as
      follows:</p>

      <ul>

      <li><p>Get the clientId for the form of which this component is a
      child.</p></li>

      <li><p>Append
      <code>NamingContainer.SEPARATOR_CHAR</code>.</p></li>

      <li><p>Append a constant string that is the same for all command
      link components in the tree.</p></li>

      </ul>

      <p>In the following text, this String is called
      hiddenFieldName.</p>

      <p>Decode Behavior</p>

      <ul>

      <p>Obtain the "clientId" property of the component.  Obtain the
      <code>Map</code> from the "requestParameterMap" property of the
      <code>ExternalContext</code>.  Derive hiddenFieldName as above.
      Get the entry in the <code>Map</code> under the key that is the
      hiddenFieldName.  If the there is no entry, or the entry is the
      empty String, or the entry is not equal to the value of the
      "clientId" property, return immediately.  If there is an entry,
      and its value is equal to the value of the "clientId" property,
      create a new <code>javax.faces.event.ActionEvent</code> instance
      around the component and call <code>queueActionEvent()</code> on
      the component, passing the event.</p>

      </ul>


      <p>Encode Behavior</p>

      <ul>

      <p>If the value of the <code>disabled</code> attribute is
      <code>true</code>, render a span element.  Render all the passthru
      attributes and the <code>target</code> attribute as pass-through
      attributes on the span, even though the <code>target</code>
      attribute will have no effect on a span.  Render the current value
      of the component as the content of the span.  Return.</p>

      <p>If the <code>disabled</code> attribute is not present, or its
      value is <code>false</code>, render an HTML <code>a</code>
      element.  Render "#" as the value of the "href" attribute. Render
      the current value of the component as the link text if it is
      specified. Render JavaScript that is functionally equivalent to
      the following as the value of the "onclick" attribute:</p>

      <p><code>document.forms['CLIENT_ID']['hiddenFieldName'].value='CLIENT_ID';
      document.forms['CLIENT_ID']['PARAM1_NAME'].value='PARAM1_VALUE';
      document.forms['CLIENT_ID']['PARAM2_NAME'].value='PARAM2_VALUE';
      return false;</code></p>

      <p>document.forms['CLIENT_ID'].submit()" where hiddenFieldName is
      as described above, CLIENT_ID is the clientId of the UICommand
      component, PARAM*_NAME and PARAM*_VALUE are the names and values,
      respectively, of any nested UIParameter children.  The name and
      the value must be URLEncoded.  If an "onclick" attribute was 
      specified by the user, render this JavaScript in a function,
      and render the user's JavaScript in a function.  Render both functions
      in a choice function as follows:</p>

      <p><code>var a=function(){#USER_FUNCTION#};
      var b=function(){#JSF_FUNCTION#};
      return (a()==false) ? false : b();</code></p>
      
      <p>where #USER_FUNCTION# is the user's JavaScript and
      #JSF_FUNCTION# is the JavaScript rendered by JSF.  The choice
      function should operate such that if the user's JavaScript returns
      true, then the rendered JavaScript will also execute.</p>
 
      <p>If the "styleClass" attribute is specified, render its value as
      the value of the "class" attribute.  Render any non-UIParameter
      output children as normal inside of the "a" element.  These will
      appear as the link text.  Allow the form renderer to output a
      single "input" element (for the entire page, regardless of how
      many command link components are in the page) of "type" "hidden"
      whose "name" is the value of hiddenFieldName, and which must not
      have a "value" attribute.  Multiple occurrences of command link
      components in the tree should not cause multiple hiddenFieldName
      hidden fields.  Allow the form renderer to output an "input"
      element of "type" "hidden" for each of the nested UIParameter
      children, taking the name property (but not the value) from each
      one in turn.  If the "disabled" attribute is specified, do not
      render the HTML "a" anchor element or its "href" attribute.
      Instead, render a "span" element.  If the "styleClass" attribute
      is specified, render its value as the value of the "class"
      attribute on the "span".  Render any pass-through attributes on
      the "span".  The content of the span element comes from the value
      of the component or its children as specified above.</p>

      <p>If the user specified a <code>target</code> attribute, its
      value must be set using javascript since the <code>onclick</code>
      handler will prevent the target attribute from being generated.
      This must be accomplished using JavaScript that is equivalent to
      the following.</p>

      <p><code>document.forms['CLIENT_ID'].target='TARGET';</p>

      <p>Where TARGET is the value of the target attribute on the JSP
      tag.</p>

      </ul>]]></description>
      <component-family>javax.faces.Command</component-family>
      <renderer-type>javax.faces.Link</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.CommandLinkRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          The character encoding of the resource designated
          by this hyperlink.
        </description>
        <display-name>Character Set</display-name>
        <icon/>
        <attribute-name>charset</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The position and shape of the hot spot on the screen
          (for use in client-side image maps).
        </description>
        <display-name>Coordinates</display-name>
        <icon/>
        <attribute-name>coords</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The language code of the resource designated
          by this hyperlink.
        </description>
        <display-name>Language</display-name>
        <icon/>
        <attribute-name>hreflang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The relationship from the current document
          to the anchor specified by this hyperlink.
          The value of this attribute is a space-separated
          list of link types.
        </description>
        <display-name>Relationship</display-name>
        <icon/>
        <attribute-name>rel</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A reverse link from the anchor specified
          by this hyperlink to the current document.
          The value of this attribute is a space-separated
          list of link types.
        </description>
        <display-name>Reverse Link</display-name>
        <icon/>
        <attribute-name>rev</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The shape of the hot spot on the screen
          (for use in client-side image maps).  Valid
          values are:  default (entire region); rect
          (rectangular region); circle (circular region);
          and poly (polygonal region).
        </description>
        <display-name>Shape</display-name>
        <icon/>
        <attribute-name>shape</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Name of a frame where the resource
          retrieved via this hyperlink is to
          be displayed.
        </description>
        <display-name>Target Frame</display-name>
        <icon/>
        <attribute-name>target</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The content type of the resource designated
          by this hyperlink.
        </description>
        <display-name>Content Type</display-name>
        <icon/>
        <attribute-name>type</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this element must never
          receive focus or be included in a subsequent
          submit.
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
        <body-tag>true</body-tag>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[
      <p>Renders an HTML "table" element compliant with the HTML 401
      specification.  Render the "caption" facet, if present, inside a "caption" 
      element immediately below the "table" element.  If the "captionClass" 
      attribute is specified, render its value as the value of the "class" 
      attribute on the "caption" element.  If the "captionStyle" attribute
      is specified, render its value as the value of the "style" attribute
      on the "caption" element.</p> 
      <p>Please consult the javadoc for <code>UIData</code>
      to supplement this specification.  If the "styleClass" attribute
      is specified, render its value as the value of the "class"
      attribute on the "table" element.  Any pass-through attributes are
      also rendered on the "table" element.  </p>

     <p>Rendering the header</p>

     <ul>

      <p>If the <code>UIData</code> component has a "header" facet, or
      any of the child <code>UIColumn</code> components has a "header"
      facet, render a "thead" element.  If the <code>UIData</code>
      component has a "header" facet, encode its contents inside of "tr"
      and "th" elements, respectively.  Output the value of the
      "headerClass" attribute of the <code>UIData</code> component, if
      present, as the value of the "class" attribute on the "th".
      Output the number of child <code>UIColumn</code> components of the
      <code>UIData</code> component as the value of the "colspan"
      attribute on the "th".  Output "colgroup" as the value of the
      "scope" attribute on the "th" element. </p>

      <p>If any of the child <code>UIColumn</code> components has a
      "header" facet render a "tr" element.  For each
      <code>UIColumn</code> that actually has a "header" facet, render
      it inside of a "th" element.  Columns that don't have a "header"
      facet cause an empty "th" element to be rendered.  Output the 
      value of the "headerClass" attribute of the <code>UIColumn</code>
      component, if present, as the value of the "class" attribute on
      the "th".  If the "headerClass" attribute of the <code>UIColumn</code>
      component is not present, output the value of the "headerClass" 
      attribute of the <code>UIData</code> component, if present, as 
      the value of the "class" attribute on the "th".  Output "col" as 
      the value of the "scope" attribute on the "th" element.
      </p>

      <p>Close out the "thead" element.</p>

      </ul>

      <p>Rendering the footer</p>

      <ul>

      <p>Follow the same process as for the header, except replace
      "header" with "footer", "th" with "td", "thead" with "tfoot", and
      "headerClass" with "footerClass".  Do not render any "scope"
      attribute for the footer.</p>

      </ul>

      <p>Rendering the table body</p>

      <ul>

      <p>Render a "tbody" element.  Keep track of the result of the
      "rows" property on the <code>UIData</code> component.  Keep track
      of the number of rows we have rendered so far.  Iterate through
      the rows.  Set the "rowIndex" property of the <code>UIData</code>
      component to be correct as we iterate through the rows.  Stop
      rendering children and close out the "tbody" element if the
      "rowAvailable" property of the <code>UIData</code> returned false.
      Output a "tr" element.  Output the value of the "rowClasses" per
      the attribute description below.  For each <code>UIColumn</code>
      child, output a "td" element, attaching the value of the
      "columnClasses" attribute of the <code>UIData</code> component per
      the attribute description below.  Recursively encode each child of
      each <code>UIColumn</code> child.  Close out the "td" element.
      When done with the row, close out the "tr" element.  When done
      with all the rows, close out the "tbody" element.</p>

      </ul>

     <p>When done rendering all the rows, set the "rowIndex" property of
     the <code>UIData</code> to -1, and close out the "table"
     element.</p>
            ]]></description>
      <component-family>javax.faces.Data</component-family>
      <renderer-type>javax.faces.Table</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.TableRenderer
    </renderer-class>
      <facet>
        <facet-name>caption</facet-name>
      </facet>
      <facet>
        <facet-name>header</facet-name>
      </facet>
      <facet>
        <facet-name>footer</facet-name>
      </facet>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Name or code of the background color for this table.
        </description>
        <display-name>Background Color</display-name>
        <icon/>
        <attribute-name>bgcolor</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Width (in pixels) of the border to be drawn
          around this table.
        </description>
        <display-name>Table Border</display-name>
        <icon/>
        <attribute-name>border</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Definition of how much space the user agent should
          leave between the border of each cell and its contents.
        </description>
        <display-name>Cell Padding</display-name>
        <icon/>
        <attribute-name>cellpadding</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Definition of how much space the user agent should
          leave between the left side of the table and the
          leftmost column, the top of the table and the top of
          the top side of the topmost row, and so on for the
          right and bottom of the table.  It also specifies
          the amount of space to leave between cells.
        </description>
        <display-name>Cell Spacing</display-name>
        <icon/>
        <attribute-name>cellspacing</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Comma-delimited list of CSS style classes that will be applied
          to the columns of this table.  A space separated list of
          classes may also be specified for any individual column.  If
          the number of elements in this list is less than the number of
          columns specified in the "columns" attribute, no "class"
          attribute is output for each column greater than the number of
          elements in the list.  If the number of elements in the list
          is greater than the number of columns specified in the
          "columns" attribute, the elements at the posisiton in the list
          after the value of the "columns" attribute are ignored.
        </description>
        <display-name>Column CSS Classes</display-name>
        <icon/>
        <attribute-name>columnClasses</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) that will be
          applied to any footer generated for this table.
        </description>
        <display-name>Footer CSS Classes</display-name>
        <icon/>
        <attribute-name>footerClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Code specifying which sides of the frame surrounding
          this table will be visible.  Valid values are:
          none (no sides, default value); above (top side only);
          below (bottom side only); hsides (top and bottom sides
          only); vsides (right and left sides only); lhs (left
          hand side only); rhs (right hand side only); box
          (all four sides); and border (all four sides).
        </description>
        <display-name>Table Frame</display-name>
        <icon/>
        <attribute-name>frame</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) that will be
          applied to any caption generated for this table.
        </description>
        <display-name>Caption CSS Classes</display-name>
        <icon/>
        <attribute-name>captionClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to be applied when this caption is rendered.
        </description>
        <display-name>Caption CSS Styles</display-name>
        <icon/>
        <attribute-name>captionStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) that will be
          applied to any header generated for this table.
        </description>
        <display-name>Header CSS Classes</display-name>
        <icon/>
        <attribute-name>headerClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Comma-delimited list of CSS style classes that will be applied
          to the rows of this table.  A space separated list of classes
          may also be specified for any individual row.  Thes styles are
          applied, in turn, to each row in the table.  For example, if
          the list has two elements, the first style class in the list
          is applied to the first row, the second to the second row, the
          first to the third row, the second to the fourth row, etc.  In
          other words, we keep iterating through the list until we reach
          the end, and then we start at the beginning again.
        </description>
        <display-name>Row CSS Classes</display-name>
        <icon/>
        <attribute-name>rowClasses</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Code specifying which rules will appear between cells
          within this table.  Valid values are:  none (no rules,
          default value); groups (between row groups); rows
          (between rows only); cols (between columns only); and
          all (between all rows and columns).
        </description>
        <display-name>Table Rules</display-name>
        <icon/>
        <attribute-name>rules</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Summary of this table's purpose and structure, for
          user agents rendering to non-visual media such as
          speech and Braille.
        </description>
        <display-name>Table Summary</display-name>
        <icon/>
        <attribute-name>summary</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Width of the entire table, for visual user agents.
        </description>
        <display-name>Table Width</display-name>
        <icon/>
        <attribute-name>width</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Renders an HTML "form" element.</p>

      <p>Decode Behavior</p>

      <ul>

      <p>Obtain the <code>Map</code> from the "requestParameterMap"
      property of the <code>ExternalContext</code>.  If the map contains
      an entry for the "clientId" of this <code>UIForm</code> component,
      call <code>setSubmitted(true)</code> on the form, otherwise call
      <code>setSubmitted(false)</code> on the form.</p>

      </ul>



      <p>Encode Behavior</p>

      <ul>

      <p>The value of the "method" attribute must be "post".  The value
      of the "action" attribute must be the result of passing the view
      identifier of the current view to the <code>getActionURL()</code>
      method of the <code>ViewHandler</code> for this application, then
      passing that String to the <code>encodeActionURL()</code> method
      on the <code>ExternalContext</code>.  The value of the acceptcharset
      attribute must be rendered as the value of "accept-charset".
      If the "styleClass" attribute is specified, render its value as the 
      value of the "class" attribute.  Call <code>ViewHandler.writeState()</code>
      before the the close of the "form" element.  Render all the
      necessary hidden fields for all commandLink instances in the page
      just before the close of the "form" element.  Render a "name"
      attribute with a value the same as the "id" attribute as described
      in "<a href="renderkit-summary.html">General Notes on
      Encoding</a>" regarding the "id" attribute for UIInput
      components.</p>

      </ul>]]></description>
      <component-family>javax.faces.Form</component-family>
      <renderer-type>javax.faces.Form</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.FormRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
        List of content types that a server processing this form
        will handle correctly
        </description>
        <display-name>Content Type</display-name>
        <icon/>
        <attribute-name>accept</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        List of character encodings for input data
        that are accepted by the server processing
        this form.
        </description>
        <display-name>Character Set</display-name>
        <icon/>
        <attribute-name>acceptcharset</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
        Content type used to submit the form to the server.  If not
        specified, the default value is
        "application/x-www-form-urlencoded".
        </description>
        <display-name>Encoding Type</display-name>
        <icon/>
        <attribute-name>enctype</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <default-value>"application/x-www-form-urlencoded"</default-value>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        Javascript code executed when this form is reset.
        </description>
        <display-name>Form Reset Script</display-name>
        <icon/>
        <attribute-name>onreset</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        Javascript code executed when this form is submitted.
        </description>
        <display-name>Form Submit Script</display-name>
        <icon/>
        <attribute-name>onsubmit</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        Name of a frame where the response
        retrieved after this form submit is to
        be displayed.
        </description>
        <display-name>Target Frame</display-name>
        <icon/>
        <attribute-name>target</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
        <tag-name>form</tag-name>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[Renders an HTML "img" element.  Render
            the clientId as the value of the "id" attribute.  Render the
            value of the component as the value of the "src" attribute,
            after passing it to the <code>getResourceURL()</code> method
            of the <code>ViewHandler</code> for this application, and
            passing the result through the
            <code>encodeResourceURL()</code> method of the
            <code>ExternalContext</code>.  When handling the "src"
            attribute, the value must not be escaped.  For example,
            <code>&</code> must not be turned into <code>&amp;amp;</code>.
            If the "styleClass" attribute
            is specified, render its value as the value of the "class"
            attribute.]]></description>
      <component-family>javax.faces.Graphic</component-family>
      <renderer-type>javax.faces.Image</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.ImageRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
        Alternate textual description of the
        element rendered by this component.
        </description>
        <display-name>Alternate Text</display-name>
        <icon/>
        <attribute-name>alt</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        Override for the height of this image.
        </description>
        <display-name>Image Height</display-name>
        <icon/>
        <attribute-name>height</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        Flag indicating that this image is to be used as a server side
        image map.  Such an image must be enclosed within a hyperlink
        ("a").  A value of false causes no attribute to be rendered, 
        while a value of true causes the attribute to be rendered as
        ismap="ismap".
        </description>
        <display-name>Image Map Flag</display-name>
        <icon/>
        <attribute-name>ismap</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        URI to a long description of the image
        represented by this element.
        </description>
        <display-name>Long Description</display-name>
        <icon/>
        <attribute-name>longdesc</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        The name of a client side image map (an HTML "map"
        element) for which this element provides the image.
        </description>
        <display-name>Use Image Map</display-name>
        <icon/>
        <attribute-name>usemap</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        Override for the width of this image.
        </description>
        <display-name>Image Width</display-name>
        <icon/>
        <attribute-name>width</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Renders an HTML "input" element of type
      "hidden".</p>

      <p>Decode Behavior</p>

      <ul>

      <p>See the decode description for the <a
      href="javax.faces.Inputjavax.faces.Text.html#encode">Input
      Text</a> renderer.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>

      <p>Render the clientId of the component as the value of the
      "name" attribute.  Render the current value of the component as
      the value of the "value" attribute.</p>

      </ul>]]></description>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Hidden</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.HiddenRenderer
    </renderer-class>
      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Renders an HTML "input" element of "type" "password".</p>

      <p>Decode Behavior</p>

      <ul>

      <p>See the decode description for the <a
      href="javax.faces.Inputjavax.faces.Text.html#encode">Input
      Text</a> renderer.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>

      <p>
      Render the clientId of the component as the value of the "name"
      attribute.  Render the current value of the component as the value
      of the "value" attribute, if and only if the "redisplay" component
      attribute is the string "true".  If the "styleClass" attribute is
      specified, render its value as the value of the "class"
      attribute.</p>

      </ul>]]></description>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Secret</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.SecretRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Alternate textual description of the
          element rendered by this component.
        </description>
        <display-name>Alternate Text</display-name>
        <icon/>
        <attribute-name>alt</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        If the value of this attribute is "off", render "off" as the value
        of the attribute. This indicates that the  browser should
        disable its autocomplete feature for this component.  This is
        useful for components that perform autocompletion and do not
        want the browser interfering.  If this attribute is not set or the value 
        is "on", render nothing.
        </description>
        <display-name>Enable or disable browser autocompletion.</display-name>
        <icon/>
        <attribute-name>autocomplete</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          The maximum number of characters that may
          be entered in this field.
        </description>
        <display-name>Maximum Length</display-name>
        <icon/>
        <attribute-name>maxlength</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The number of characters used to determine
          the width of this field.
        </description>
        <display-name>Field Width</display-name>
        <icon/>
        <attribute-name>size</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
        Flag indicating that any existing value
        in this field should be rendered when the
        form is created.  Because this is a potential
        security risk, password values are not
        displayed by default.
        </description>
        <display-name>Redisplay Flag</display-name>
        <icon/>
        <attribute-name>redisplay</attribute-name>
        <attribute-class>boolean</attribute-class>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Renders an HTML "input"
      element of "type" "text".</p>

      <p><a name="decode">Decode Behavior</a></p>

      <ul>

      <p>Obtain the <code>Map</code> from the "requestParameterMap"
      property of the <code>ExternalContext</code>.  If the
      <code>Map</code> contains an entry for the "clientId" of the
      component, pass the value of the entry to the
      <code>setSubmittedValue()</code> method of the component, which
      must be an instance of <code>EditableValueHolder</code>.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>

      <p>  Render the clientId of the component as
      the value of the "name" attribute.  Render the current value of
      the component as the value of the "value" attribute.  If the
      "styleClass" attribute is specified, render its value as the value
      of the "class" attribute.
      </p>

      </ul>]]></description>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.TextRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Alternate textual description of the
          element rendered by this component.
        </description>
        <display-name>Alternate Text</display-name>
        <icon/>
        <attribute-name>alt</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        If the value of this attribute is "off", render "off" as the value
        of the attribute. This indicates that the  browser should
        disable its autocomplete feature for this component.  This is
        useful for components that perform autocompletion and do not
        want the browser interfering.  If this attribute is not set or the value 
        is "on", render nothing.
        </description>
        <display-name>Enable or disable browser autocompletion.</display-name>
        <icon/>
        <attribute-name>autocomplete</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          The maximum number of characters that may
          be entered in this field.
        </description>
        <display-name>Maximum Length</display-name>
        <icon/>
        <attribute-name>maxlength</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The number of characters used to determine
          the width of this field.
        </description>
        <display-name>Field Width</display-name>
        <icon/>
        <attribute-name>size</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Renders an HTML "textarea" element.</p>

      <p>Decode Behavior</p>

      <ul>

      <p>See the encode description for the <a
      href="javax.faces.Inputjavax.faces.Text.html#encode">Input
      Text</a> renderer.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>

      <p>  Render the
      clientId as the value of the "name" attribute.  Render the current
      valu eof the component inside the "textarea"
      element.</p> </ul>]]></description>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Textarea</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.TextareaRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
        The number of columns to be displayed.
        </description>
        <display-name>Columns</display-name>
        <icon/>
        <attribute-name>cols</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        The number of rows to be displayed.
        </description>
        <display-name>Rows</display-name>
        <icon/>
        <attribute-name>rows</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
          <value-expression-enabled>true</value-expression-enabled>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Render a single message for a specific component.</p>

      <p>Set-up for Rendering</p>

      <ul>

        <p>Obtain the "summary" and "detail" properties from
        <code>UIMessage</code> component.  If not present, keep the
        empty string as the value, respectively.  Obtain the first
        <code>FacesMessage</code> to render from the component, using
        the "for" property of the <code>UIMessage</code>.  This will be
        the only message we render.  Obtain the severity style for this
        message.  If the severity of the message is
        <code>FacesMessage.SEVERITY_INFO</code>, the severity style
        comes from the value of the "infoStyle" attribute.  If the
        severity of the message is
        <code>FacesMessage.SEVERITY_WARN</code>, the severity style
        comes from the value of the "warnStyle" attribute, and so on for
        each of the severities, <code>INFO, WARN, ERROR</code> and
        <code>FATAL</code>.  The same rules apply for obtaining the
        severity style class, but instead of "infoStyle, warnStyle", etc
        use "infoClass, warnClass", etc.  Obtain the "style",
        "styleClass" and "layout" attributes from the
        <code>UIMessage</code> component.  If we have a "style"
        attribute and a severity style attribute, use the severity style
        attribute as the value of the "style" attribute.  If we have no
        "style" attribute, but do have a severity style, use the
        severity style as the value of the "style" attribute.  The same
        precedence rules apply for the style class.  Obtain the value of
        the <code>dir</code> and <code>lang</code> attributes.</p>

      </ul>

      <p>Rendering</p>

      <ul>

      <p>For the message renderer, we only render one row, for the first
      message.  For the messages renderer, we render as many rows as we
      have messages.  If any of the "dir", "lang", "style" or
      "styleClass" attributes has a non-null value (as determined
      above), render a "span" element, outputting the value of the
      "style" attribute as the the value of the "style" attribute, and
      outputting the value of the "styleClass" attribute as the value of
      the "class" attribute on the "span" element.  Output the "dir" and
      "lang" attributes as well, if they are present.  If the
      <code>UIMessage</code> has a "tooltip" attribute with the value of
      "true", and the <code>UIMessage</code> has "showSummary" and
      "showDetail" properties with the value "true", if we haven't
      already written out the "span", output the "summary" as the value
      of the "title" attribute on the "span".  If we haven't already
      written out a "title" attribute, and "showSummary" is true, output
      the summary.  If "showDetail" is true, output the detail.  Close
      out the span if necessary.</p>

      </ul>]]></description>
      <component-family>javax.faces.Message</component-family>
      <renderer-type>javax.faces.Message</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.MessageRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          CSS style class to apply to any message
          with a severity class of "ERROR".
        </description>
        <display-name>Error Class</display-name>
        <icon/>
        <attribute-name>errorClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to apply to any message
          with a severity class of "ERROR".
        </description>
        <display-name>Error Styles</display-name>
        <icon/>
        <attribute-name>errorStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to any message
          with a severity class of "FATAL".
        </description>
        <display-name>Fatal Class</display-name>
        <icon/>
        <attribute-name>fatalClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to apply to any message
          with a severity class of "FATAL".
        </description>
        <display-name>Fatal Styles</display-name>
        <icon/>
        <attribute-name>fatalStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to any message
          with a severity class of "INFO".
        </description>
        <display-name>Info Class</display-name>
        <icon/>
        <attribute-name>infoClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to apply to any message
          with a severity class of "INFO".
        </description>
        <display-name>Info Styles</display-name>
        <icon/>
        <attribute-name>infoStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Flag indicating whether the detail portion of the
          message should be displayed as a tooltip.
        </description>
        <display-name>Tooltip</display-name>
        <icon/>
        <attribute-name>tooltip</attribute-name>
        <attribute-class>boolean</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to any message
          with a severity class of "WARN".
        </description>
        <display-name>Warning Class</display-name>
        <icon/>
        <attribute-name>warnClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to apply to any message
          with a severity class of "WARN".
        </description>
        <display-name>Warning Styles</display-name>
        <icon/>
        <attribute-name>warnStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[
     <p>The same as for the Message renderer, but output all the
     messages.  If the value of the "layout" attribute is "table",
     render nested "table", "tr", and "td" elements, in that order.
     If the value of the "layout" attribute is "list", or the "layout" 
     attribute is not specified, render nested "ul", "li" elements,
     in that order.  Output the value of the "style" attribute as the 
     value of the "style" attribute, output the value of the "styleClass" 
     attribute as the value of the "class" attribute, and output the dir
     and lang attributes.  Output these values on the "table" element or 
     the "ul" element.   The component is a <code>UIMessages</code>, and 
     there is no "for" attribute.  Therefore, use either <code>null</code> 
     to obtain the messages from the <code>FacesContext</code> or the 
     empty string if the components "globalOnly" property is <code>true</code>.  
     If the layout was "table" close out the table elements, otherwise, 
     close out the list elements.</p>
            ]]></description>
      <component-family>javax.faces.Messages</component-family>
      <renderer-type>javax.faces.Messages</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.MessagesRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          CSS style class to apply to any message
          with a severity class of "ERROR".
        </description>
        <display-name>Error Class</display-name>
        <icon/>
        <attribute-name>errorClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to apply to any message
          with a severity class of "ERROR".
        </description>
        <display-name>Error Styles</display-name>
        <icon/>
        <attribute-name>errorStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to any message
          with a severity class of "FATAL".
        </description>
        <display-name>Fatal Class</display-name>
        <icon/>
        <attribute-name>fatalClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to apply to any message
          with a severity class of "FATAL".
        </description>
        <display-name>Fatal Styles</display-name>
        <icon/>
        <attribute-name>fatalStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to any message
          with a severity class of "INFO".
        </description>
        <display-name>Info Class</display-name>
        <icon/>
        <attribute-name>infoClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to apply to any message
          with a severity class of "INFO".
        </description>
        <display-name>Info Styles</display-name>
        <icon/>
        <attribute-name>infoStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          The type of layout markup to use when rendering
          error messages.  Valid values are "table" (an HTML
          table) and "list" (an HTML list).  If not specified,
          the default value is "list".
        </description>
        <display-name>Layout</display-name>
        <icon/>
        <attribute-name>layout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <default-value>"list"</default-value>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating whether the detail portion of the
          message should be displayed as a tooltip.
        </description>
        <display-name>Tooltip</display-name>
        <icon/>
        <attribute-name>tooltip</attribute-name>
        <attribute-class>boolean</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to any message
          with a severity class of "WARN".
        </description>
        <display-name>Warning Class</display-name>
        <icon/>
        <attribute-name>warnClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to apply to any message
          with a severity class of "WARN".
        </description>
        <display-name>Warning Styles</display-name>
        <icon/>
        <attribute-name>warnStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Render parameterized text.  Obtain the
      <code>style</code>, <code>styleClass</code>, <code>dir</code>, and
      <code>lang</code> attributees from this component.  If any are
      present, render a "span" element.  Output the
      <code>styleClass</code> attribute (if present) as the value of the
      <code>class</code> attribute.  Output the <code>style</code>
      attribute as the value of the <code>style</code> attribute.
      Output the <code>dir</code> and <code>lang</code> attributes as
      pass through attributes.  Accrue a list of the values of all child
      <code>UIParameter</code> components of this component.  If there
      are one or more accumulated parameter values, convert the list of
      parameter values to an <code>Object</code> array, call
      <code>MessageFormat.format()</code>, passing the
      <code>value</code> of this component as the first argument, and
      the array of parameter values as the second argument, and render
      the result.  Otherwise, render the <code>value</code> of this
      component unmodified.</p>]]></description>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Format</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.OutputMessageRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
        Flag indicating that characters that are sensitive
        in HTML and XML markup must be escaped.  This flag
        is set to "true" by default.
        </description>
        <display-name>Escape Characters</display-name>
        <icon/>
        <attribute-name>escape</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <default-value>true</default-value>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description>Renders an HTML "label" element.  Render the current value
      of the component as label text if it is specified. If a "for" attribute is
      specified, find the component specified by the value of the "for"
      attribute, and render its client id as the value of the "for" attribute.
      If "styleClass" attribute is specified, render its value as the value
      of the "class" attribute.</description>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Label</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.LabelRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
        Client identifier of the component for which this element
        is a label.
        </description>
        <display-name>Label For Identifier</display-name>
        <icon/>
        <attribute-name>for</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <required>false</required>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
        Flag indicating that characters that are sensitive
        in HTML and XML markup must be escaped.  If omitted, this
        flag is assumed to be "true".
        </description>
        <display-name>Escape Characters</display-name>
        <icon/>
        <attribute-name>escape</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <default-value>true</default-value>
          <value-expression-enabled>true</value-expression-enabled>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[Render an HTML "a" anchor element.  The value of the
      component is rendered as the value of the "href" attribute.  Any
      child UIParameter components are appended to the String to be
      output as the value of the "href" attribute as query parameters
      before rendering.  The entire "href" string must be passed through
      a call to the <code>encodeResourceURL()</code> method of the
      <code>ExternalContext</code>.  The name of the UIParameter goes on
      the left hand side, and the value of the UIParameter on the right
      hand side.  The name and the value must be URLEncoded.  Each
      UIParameter instance is separeted by an ampersand, as dictated in
      the URL spec.  If the "styleClass" attribute is specified, render
      its value as the value of the "class" attribute.  If the "id" attribute
      is specified, follow the same steps as mentioned in the 
      "<a href="renderkit-summary.html">General
      Notes on Encoding</a>" regarding the "id" attribute for UIInput components.
      If the "disabled" attribute is specified, do not render the HTML "a"
      anchor element or the "href" element.  Instead, render a "span" element. 
      If the "styleClass" attribute is specified, render its value as the value 
      of the "class" attribute on the "span".  Render any pass-through attributes
      on the "span".]]></description>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Link</renderer-type>
      <renderer-class>
       com.sun.faces.renderkit.html_basic.OutputLinkRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          The character encoding of the resource designated
          by this hyperlink.
        </description>
        <display-name>Character Set</display-name>
        <icon/>
        <attribute-name>charset</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The position and shape of the hot spot on the screen
          (for use in client-side image maps).
        </description>
        <display-name>Coordinates</display-name>
        <icon/>
        <attribute-name>coords</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The language code of the resource designated
          by this hyperlink.
        </description>
        <display-name>Language</display-name>
        <icon/>
        <attribute-name>hreflang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The relationship from the current document
          to the anchor specified by this hyperlink.
          The value of this attribute is a space-separated
          list of link types.
        </description>
        <display-name>Relationship</display-name>
        <icon/>
        <attribute-name>rel</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A reverse link from the anchor specified
          by this hyperlink to the current document.
          The value of this attribute is a space-separated
          list of link types.
        </description>
        <display-name>Reverse Link</display-name>
        <icon/>
        <attribute-name>rev</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The shape of the hot spot on the screen
          (for use in client-side image maps).  Valid
          values are:  default (entire region); rect
          (rectangular region); circle (circular region);
          and poly (polygonal region).
        </description>
        <display-name>Shape</display-name>
        <icon/>
        <attribute-name>shape</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Name of a frame where the resource
          retrieved via this hyperlink is to
          be displayed.
        </description>
        <display-name>Target Frame</display-name>
        <icon/>
        <attribute-name>target</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The content type of the resource designated
          by this hyperlink.
        </description>
        <display-name>Content Type</display-name>
        <icon/>
        <attribute-name>type</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this element must never
          receive focus or be included in a subsequent
          submit.
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
        <body-tag>true</body-tag>
      </renderer-extension>
    </renderer>
    <renderer>
      <description>If the "styleClass", "style", "dir" or "lang"
      attributes are present, render a "span" element.  If the
      "styleClass" attribute is present, render its value as the value
      of the "class" attribute.  If the "style" attribute is present,
      pass it thru.  If the "escape" attribute is not present, or it is
      present and its value is "true" all angle brackets should be
      converted to the ampersand xx semicolon syntax when rendering the
      value of the "value" attribute as the value of the component.  If
      the "escape" attribute is present and is "false" the value of the
      component should be rendered as text without escaping.
            </description>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.TextRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
        Flag indicating that characters that are sensitive
        in HTML and XML markup must be escaped.  This flag
        is set to "true" by default.
        </description>
        <display-name>Escape Characters</display-name>
        <icon/>
        <attribute-name>escape</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <default-value>true</default-value>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[Renders an HTML "table" element, conforming to the
      rules in the HTML 401 specification.  Render the "caption" facet, 
      if present, inside a "caption" element immediately below the "table" element.  
      If the "captionClass" attribute is specified, render its value as the value 
      of the "class" attribute on the "caption" element.  If the "captionStyle" attribute
      is specified, render its value as the value of the "style" attribute
      on the "caption" element.  If the "styleClass" attribute is specified, render 
      its value as the value of the "class" attribute.  Render the pass-through 
      attributes in the table below.  Render the "header" facet, if present, inside of
      "thead", "tr", and "th" elements, nested in that order.  If the
      "headerClass" attribute is specifed, render its value as the value
      of the "class" attribute on the "th" element.  Render "colgroup"
      as the value of the "scope" attribute.  Render the value of the
      "columns" attribute as the value of the "colspan" attribute on the
      "th" element.  Render the "footer" facet if present, using similar
      logic to the rendering of the "header", but replacing "thead" with
      "tfoot", "th" with "td", and "headerClass" with "footerClass".
      Render the children of the <code>UIPanel</code> component inside
      of a "tbody" element.  Render the children based on the value of
      the "columns" attribute, creating a new row each time a "columns"
      worth of children have been rendered.  For the start of each row,
      render a "tr" element.  Output the value of the "rowClasses" per
      the attribute description below.  For each child, output a "td" 
      element, attaching the value of the "columnClasses" attribute per
      the attribute description below.  Recursively encode each child.
      Close out the "td" element.  When done with the row, close out the 
      "tr" element.  If a child has "rendered==false" it is not rendered, 
      and the column counter must not be incremented.]]></description>
      <component-family>javax.faces.Panel</component-family>
      <renderer-type>javax.faces.Grid</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.GridRenderer
    </renderer-class>
      <facet>
        <facet-name>header</facet-name>
      </facet>
      <facet>
        <facet-name>footer</facet-name>
      </facet>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Name or code of the background color for this table.
        </description>
        <display-name>Background Color</display-name>
        <icon/>
        <attribute-name>bgcolor</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Width (in pixels) of the border to be drawn
          around this table.
        </description>
        <display-name>Table Border</display-name>
        <icon/>
        <attribute-name>border</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Definition of how much space the user agent should
          leave between the border of each cell and its contents.
        </description>
        <display-name>Cell Padding</display-name>
        <icon/>
        <attribute-name>cellpadding</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Definition of how much space the user agent should
          leave between the left side of the table and the
          leftmost column, the top of the table and the top of
          the top side of the topmost row, and so on for the
          right and bottom of the table.  It also specifies
          the amount of space to leave between cells.
        </description>
        <display-name>Cell Spacing</display-name>
        <icon/>
        <attribute-name>cellspacing</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Comma-delimited list of CSS style classes that will be applied
          to the columns of this table.  A space separated list of
          classes may also be specified for any individual column.  If
          the number of elements in this list is less than the number of
          columns specified in the "columns" attribute, no "class"
          attribute is output for each column greater than the number of
          elements in the list.  If the number of elements in the list
          is greater than the number of columns specified in the
          "columns" attribute, the elements at the posisiton in the list
          after the value of the "columns" attribute are ignored.
        </description>
        <display-name>Column CSS Classes</display-name>
        <icon/>
        <attribute-name>columnClasses</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) that will be
          applied to any footer generated for this table.
        </description>
        <display-name>Footer CSS Classes</display-name>
        <icon/>
        <attribute-name>footerClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Code specifying which sides of the frame surrounding
          this table will be visible.  Valid values are:
          none (no sides, default value); above (top side only);
          below (bottom side only); hsides (top and bottom sides
          only); vsides (right and left sides only); lhs (left
          hand side only); rhs (right hand side only); box
          (all four sides); and border (all four sides).
        </description>
        <display-name>Table Frame</display-name>
        <icon/>
        <attribute-name>frame</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) that will be
          applied to any caption generated for this table.
        </description>
        <display-name>Caption CSS Classes</display-name>
        <icon/>
        <attribute-name>captionClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style(s) to be applied when this caption is rendered.
        </description>
        <display-name>Caption CSS Styles</display-name>
        <icon/>
        <attribute-name>captionStyle</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) that will be
          applied to any header generated for this table.
        </description>
        <display-name>Header CSS Classes</display-name>
        <icon/>
        <attribute-name>headerClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Comma-delimited list of CSS style classes that will be applied
          to the rows of this table.  A space separated list of classes
          may also be specified for any individual row.  Thes styles are
          applied, in turn, to each row in the table.  For example, if
          the list has two elements, the first style class in the list
          is applied to the first row, the second to the second row, the
          first to the third row, the second to the fourth row, etc.  In
          other words, we keep iterating through the list until we reach
          the end, and then we start at the beginning again.
        </description>
        <display-name>Row CSS Classes</display-name>
        <icon/>
        <attribute-name>rowClasses</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Code specifying which rules will appear between cells
          within this table.  Valid values are:  none (no rules,
          default value); groups (between row groups); rows
          (between rows only); cols (between columns only); and
          all (between all rows and columns).
        </description>
        <display-name>Table Rules</display-name>
        <icon/>
        <attribute-name>rules</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Summary of this table's purpose and structure, for
          user agents rendering to non-visual media such as
          speech and Braille.
        </description>
        <display-name>Table Summary</display-name>
        <icon/>
        <attribute-name>summary</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Width of the entire table, for visual user agents.
        </description>
        <display-name>Table Width</display-name>
        <icon/>
        <attribute-name>width</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
        The number of columns to render before
        starting a new row.
        </description>
        <display-name>Columns</display-name>
        <icon/>
        <attribute-name>columns</attribute-name>
        <attribute-class>int</attribute-class>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description>Intended for use in situations when only one
      UIComponent child can be nested, such as in the case of facets.
      If the "style" or "styleClass" attributes are present, and the "layout"
      attribute is present with a value of "block", render a "div" element,
      outputting the value of the "style" attribute as the value of the 
      "style" attribute and the value of the "styleClass" attribute as the
      value of the "class" attribute.  Otherwise, if the "layout" attribute
      is not present, or the "layout" attribute contains a value other than
      "block", render a "span" element, outputting the value of the 
      "style" attribute as the value of the "style" attribute, and the value 
      of the "styleClass" attribute as the value of the "class"
      attribute. </description>
      <component-family>javax.faces.Panel</component-family>
      <renderer-type>javax.faces.Group</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.GroupRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" property on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          The type of layout markup to use when rendering this group.
          If the value is "block" the renderer must produce an HTML
          "div" element.  Otherwise HTML "span" element must
          be produced.
        </description>
        <display-name>Layout</display-name>
        <icon/>
        <attribute-name>layout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Renders an HTML "input" element of type "checkbox".</p>

      <p>Decode Behavior</p>

      <ul>

      <p>Obtain the <code>Map</code> from the "requestParameterMap"
      property of the <code>ExternalContext</code>.  If there is no
      entry in the <code>Map</code> for the "clientId" of this
      component, pass "false" to the <code>setSubmittedValue()</code>
      method of the component, which must be an instance of
      <code>EditableValueHolder</code>.  If there is an entry, and its
      value is equal, ignoring case and without quotes, to any of the
      Strings: "on", "yes" or "true" pass true to the
      <code>setSubmittedValue()</code> method of the component.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>

      <p>
      Render the clientId of the component as the value of the "name"
      attribute.  If the current value of the component is "true",
      output the "checked" attribute (must be rendered as checked="checked").  
      If the "styleClass" attribute is specified, render its value as the value 
      of the "class" attribute.</p> </ul>]]></description>
      <component-family>javax.faces.SelectBoolean</component-family>
      <renderer-type>javax.faces.Checkbox</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.CheckboxRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Render an HTML checkbox list.</p>

      <p><a name="decode">Decode Behavior</a></p>

      <ul>

      <p>See the <a
      href="javax.faces.SelectManyjavax.faces.Listbox.html#decodeMany">"Decode
      Behavior for UISelectMany Components"</a> section.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>
      <p>Render a "table" element.  If the "styleClass" is specified, render the
      value of the "styleClass" attribute as the value of the "class" attribute
      on the "table" element. If the "style", "border" attributes are specified,
      pass them thru.  If the "layout" attribute is specified, and its
      value is "pageDirection", render the children elements vertically,
      otherwise horizontally, in the table.  If any of the children are
      an instance of SelectItemGroup, render them as a nested table.
      Each of the children are ultimately rendererd as follows.  Render
      an "input" element of "type" "checkbox" for each child component.
      Render the "name" attribute on the "input" element with the value
      of the <code>clientId</code> of the component.  Render an "id" 
      attribute on the "input" element.  Each "id" value must be unique.
      If the current SelectItem.isDisabled() returns true, render 
      "disabled" as the value of the "disabled" attribute. 
      Close out the "input" element.  Render a "label" element.  Render the 
      "for" attribute of the "label" element whose value is the corresponding 
      "input" element's "id" value.  Render any "style" as the "class" attribute 
      on the "label" element.  Close out the starting "label" element and render 
      the label value from SelectItem.getLabel().  Close out the "label" element.
      As an exception to the general rules about how to handle the "id" attribute, 
      render it as an attribute on the outer "table" element, the value of which 
      is the <code>clientId</code> of the component per the rules at the beginning
      of this specification.  The value of the current SelectItem is rendered as 
      the value of the "value" attribute.  Coerce the value of the currently rendered
      child to the type of the parent UISelectMany value following the Expression Language 
      coercion rules, before comparing the values.  If the value of the enclosing 
      UISelectMany matches the current value, render "checked" as the value of the
      "checked" attribute.  See the 
      <a href="javax.faces.SelectManyjavax.faces.Listbox.html#options">"Rendering
      the option elements" </a> specification for
      <code>ListboxRenderer</code> for more detail on how to render the
      "option" elements in this renderer.</p>

      </ul>]]></description>
      <component-family>javax.faces.SelectMany</component-family>
      <renderer-type>javax.faces.Checkbox</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.SelectManyCheckboxListRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Width (in pixels) of the border to be drawn
          around the table containing the options list.
        </description>
        <display-name>Table Border</display-name>
        <icon/>
        <attribute-name>border</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to the rendered label
          on disabled options.
        </description>
        <display-name>Disabled Label Class</display-name>
        <icon/>
        <attribute-name>disabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to the rendered label
          on enabled options.
        </description>
        <display-name>Enabled Label Class</display-name>
        <icon/>
        <attribute-name>enabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Orientation of the options list to be created.
          Valid values are "pageDirection" (list is laid
          out vertically), or "lineDirection" (list is
          laid out horizontally).  If not specified, the
          default value is "lineDirection".
        </description>
        <display-name>Layout</display-name>
        <icon/>
        <attribute-name>layout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Render an HTML option list.</p>

      <p>Decode Behavior</p>

      <p>This section documents the decode behavior for all renderers
      that handle <code>UISelectMany</code> or <code>UISelectOne</code>
      components.</p>

      <ul>

      <p><a name="decodeMany">Decode Behavior for
      <code>UISelectMany</code> components</a></p>

      <ul>

        <p>Obtain the <code>Map</code> from the
        "requestParameterValuesMap" property of the
        <code>ExternalContext</code>.  If the <code>Map</code> contains
        an entry for the "clientId" of the component, pass the value of
        the entry, cast to a <code>String []</code>, to the
        <code>setSubmittedValue()</code> method of the component, which
        must be an <code>EditableValueHolder</code>.  If the
        <code>Map</code> does not contain an entry, create an empty
        <code>String</code> array and call
        <code>setSubmittedValue()</code> with it.</p>

      </ul>

      <p><a name="decodeOne">Decode Behavior for
      <code>UISelectOne</code> components</a></p>

      <ul>

      <p>Obtain the <code>Map</code> from the "requestParameterMap"
      property of the <code>ExternalContext</code>.  If there is a
      <code>Map</code> entry for the "clientId" property of the
      component, pass it to the <code>setSubmittedValue()</code> method
      of the component.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>

      <p>Render an HTML "select" element. Render the clientId of
      the component as the value of the "name" attribute.  If the "styleClass"
      attribute is specified, render its value as the value of the "class"
      attribute on the "select" element.  If the component is a
      <code>UISelectMany</code> instance, render "multiple" as the value of the
      "multiple" attribute.  If the "size" attribute is specified, render its
      value as the value of the "size" attribute.  Otherwise use the number of
      items as the value of the "size" attribute.</p>

      </ul>

      <p><a name="option">Rendering the "option" elements</a></p>

      <ul>

      <p>The only valid children of this component are
      <code>UISelectItem</code> or <code>UISelectItems</code> instances.
      Iterate over the children of this component, and accrue a list of
      <code>javax.faces.model.SelectItem</code> instances.  If the
      current child is a <code>UISelectItem</code> create a
      <code>SelectItem</code>instance from its <code>itemValue,
      itemLabel</code> and <code>itemDescription</code> properties, add
      it to the list.  If the current child is a
      <code>UISelectItems</code> instance, call its
      <code>getValue()</code> method.  If the result is a
      <code>SelectItem</code> bean, add it to the list.  If the result
      is an array of <code>SelectItem</code> beans, add each one t othe
      list.  If the result is a <code>Collection</code> of
      <code>SelectItem</code> beans, add each one to the list.  If the
      result isa <code>Map</code>, create a <code>SelectItem</code> bean
      for each entry in the <code>Map</code> using the key as the label,
      the value as the value, and <code>null</code> as the description.
      Iterate over the list of <code>SelectItem</code> beans.  If the
      current element is a <code>SelectItemGroup</code>, render an
      "optgroup" element with a "label" attribute, the value of which is
      the "label" property from the current element, then call
      <code>getSelectItems()</code> and render each element as below.
      If the current element is not a <code>SelectItemGroup</code>,
      render an "option" element.  Follow the conversion rules in the
      spec to obtain a renderable <code>String</code> from the "value"
      property of the current element, render that as the value of the
      "value" atribute.  Now it is time to see if the current element is
      the selected value.  call its
      <code>getSubmittedValue()</code> method, casting the result to an
      <code>Object []</code>, otherwise the component must be a
      <code>UISelectOne</code> instance, call its
      <code>getSubmittedValue()</code> method and create an <code>Object
      []</code> around the result.  Determine the type of the resultant array
      if the resultant array is non-null, otherwise the type is <code>String</code>.
      Coerce the current item value to this type following the Expression
      Language coercion rules.  If the resultant array is non-null,
      we look in the array for a value that, when we pass the renderable
      value to its <code>equals()</code> method, it returns
      <code>true</code>, meaning the current element is selected.  If
      the resultant array is <code>null</code>, if the component is a
      <code>UISelectMany</code>, call its <code>getValue()</code>
      method.  If the result is a <code>List</code> obtain the values in
      the list as an array.  Otherwise, the component must be a
      <code>UISelectOne</code> instance.  Call its
      <code>getValue()</code> method, which must be an Object array.
      Look for an element in the resultant array that, 1. when we pass
      the renderable value to its <code>equals()</code> method, it
      returns <code>true</code> , or 2. if the renderable value is null,
      and there is a null element in the array, also conclude that the
      current element is selected.  Otherwise the current element is not
      selected.  Now, if the current value is selected, write out an
      HTML boolean property "selected".  If the current
      SelectItem.isDisabled() returns true, render "disabled" as the
      value of the "disabled" attribute.</p>

      </ul>

      </ul>]]></description>
      <component-family>javax.faces.SelectMany</component-family>
      <renderer-type>javax.faces.Listbox</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.ListboxRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
         CSS style class to apply to the rendered label
         on disabled options.
        </description>
        <display-name>Disabled Label Class</display-name>
        <icon/>
        <attribute-name>disabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
         CSS style class to apply to the rendered label
         on enabled options.
        </description>
        <display-name>Enabled Label Class</display-name>
        <icon/>
        <attribute-name>enabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
        Number of available options to be shown at all times.
        If not specified, all available options are shown.
        </description>
        <display-name>Size</display-name>
        <icon/>
        <attribute-name>size</attribute-name>
        <attribute-class>int</attribute-class>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Render an HTML option list.</p>

      <p><a name="decode">Decode Behavior</a></p>

      <ul>

      <p>See the <a
      href="javax.faces.SelectManyjavax.faces.Listbox.html#decodeMany">"Decode
      Behavior for UISelectMany Components"</a> section.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>

      <p>Render an HTML "select" element.  Render the clientId of
      the component as the value of the "name" attribute.  If the "styleClass"
      attribute is specified, render its value as the value of the "class"
      attribute on the "select" element. If the component
      to be rendered is a UISelectMany, render "multiple" as the value of
      the "multiple" attribute.  Render "1" as the value of the "size"
      attribute.  See the <a
      href="javax.faces.SelectManyjavax.faces.Listbox.html#options">"Rendering the option
      elements" </a> specification for <code>ListboxRenderer</code> for
      more detail on how to render the "option" elements in this
      renderer.</p>

      </ul>]]></description>
      <component-family>javax.faces.SelectMany</component-family>
      <renderer-type>javax.faces.Menu</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.MenuRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
         CSS style class to apply to the rendered label
         on disabled options.
        </description>
        <display-name>Disabled Label Class</display-name>
        <icon/>
        <attribute-name>disabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
         CSS style class to apply to the rendered label
         on enabled options.
        </description>
        <display-name>Enabled Label Class</display-name>
        <icon/>
        <attribute-name>enabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Render an HTML option list.</p>

      <p><a name="decode">Decode Behavior</a></p>

      <ul>

      <p>See the <a
      href="javax.faces.SelectManyjavax.faces.Listbox.html#decodeOne">"Decode
      Behavior for UISelectOne Components"</a> section.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>
      <p>Render an HTML "select" element.  Render the clientId of
      the component as the value of the "name" attribute.  If the "styleClass"
      attribute is specified, render its value as the value of the "class"
      attribute on the "select" element. If the component
      to be rendered is a UISelectMany, render "multiple" as the value of
      the "multiple" attribute.  If the "size" attribute is specified,
      render its value as the value of the "size" attribute.  Otherwise
      use the number of items as the value of the "size" attribute.  See
      the <a href="javax.faces.SelectManyjavax.faces.Listbox.html#options">"Rendering the option
      elements" </a> specification for <code>ListboxRenderer</code> for
      more detail on how to render the "option" elements in this
      renderer.</p>

      </ul>]]></description>
      <component-family>javax.faces.SelectOne</component-family>
      <renderer-type>javax.faces.Listbox</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.ListboxRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
         CSS style class to apply to the rendered label
         on disabled options.
        </description>
        <display-name>Disabled Label Class</display-name>
        <icon/>
        <attribute-name>disabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
         CSS style class to apply to the rendered label
         on enabled options.
        </description>
        <display-name>Enabled Label Class</display-name>
        <icon/>
        <attribute-name>enabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
        Number of available options to be shown at all times.
        If not specified, all available options are shown.
        </description>
        <display-name>Size</display-name>
        <icon/>
        <attribute-name>size</attribute-name>
        <attribute-class>int</attribute-class>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Render an HTML option list.</p>

      <p><a name="decode">Decode Behavior</a></p>

      <ul>

      <p>See the <a
      href="javax.faces.SelectManyjavax.faces.Listbox.html#decodeOne">"Decode
      Behavior for UISelectOne Components"</a> section.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>

      <p>Render an HTML "select" element.  Render the clientId of the
      component as the value of the "name" attribute.  If the
      "styleClass" attribute is specified, render its value as the value
      of the "class" attribute on the "select" element. If the component
      to be rendered is a UISelectMany, render "true" as the value of
      the "multiple" attribute.  Use the number of items as the value of
      the "size" attribute.  See the <a
      href="javax.faces.SelectManyjavax.faces.Listbox.html#options">"Rendering
      the option elements" </a> specification for
      <code>ListboxRenderer</code> for more detail on how to render the
      "option" elements in this renderer.</p>

      </ul>]]></description>
      <component-family>javax.faces.SelectOne</component-family>
      <renderer-type>javax.faces.Menu</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.MenuRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
         CSS style class to apply to the rendered label
         on disabled options.
        </description>
        <display-name>Disabled Label Class</display-name>
        <icon/>
        <attribute-name>disabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
         CSS style class to apply to the rendered label
         on enabled options.
        </description>
        <display-name>Enabled Label Class</display-name>
        <icon/>
        <attribute-name>enabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
    <renderer>
      <description><![CDATA[<p>Render a set of html "input" elements of type
      "radio".</p>

      <p><a name="decode">Decode Behavior</a></p>

      <ul>

      <p>See the <a
      href="javax.faces.SelectManyjavax.faces.Listbox.html#decodeOne">"Decode
      Behavior for UISelectOne Components"</a> section.</p>

      </ul>

      <p>Encode Behavior</p>

      <ul>

      <p>Render a "table" element. If the "styleClass" is specified, render the
      value of the "styleClass" attribute as the value of the "class" attribute
      on the "table" element. If the "style", "border" attributes are specified,
      pass them thru. If the "layout" attribute is specified, and its
      value is "pageDirection", render the children elements
      vertically, otherwise horizontally, in the table.  If any of the
      children are an instance of SelectItemGroup, render them as a
      nested table.  Each of the children are ultimately rendered as follows.
      Render an "input" element of "type" "radio" for each child component.
      Render the "name" attribute on the "input" element with the value
      of the <code>clientId</code> of the component.  Render an "id"
      attribute on the "input" element.  Each "id" value must be unique.
      If the current SelectItem.isDisabled() returns true, render
      "disabled" as the value of the "disabled" attribute.
      Close out the "input" element.  Render a "label" element.  Render the
      "for" attribute of the "label" element whose value is the corresponding
      "input" element's "id" value.  Render any "style" as the "class" attribute
      on the "label" element.  Close out the starting "label" element and render
      the label value from SelectItem.getLabel().  Close out the "label" element.
      As an exception to the general rules about how to handle the "id" attribute,
      render it as an attribute on the outer "table" element, the value of which
      is the <code>clientId</code> of the component per the rules at the
      beginning  of this specification.
      Coerce the value of the currently rendered child to the type of the parent 
      UISelectOne value using the Expression Language coercion rules before comparing 
      the values.  If the value of the currently rendered child is equal to
      the value of the parent UISelectOne, render an appropriate HTML
      boolean value indicating "checked" for the enclosing "input".
      See the 
      <a href="javax.faces.SelectManyjavax.faces.Listbox.html#options">"Rendering the option
      elements" </a> specification for <code>ListboxRenderer</code> for
      more detail on how to render the "option" elements in this
      renderer.</p>

      </ul>]]></description>
      <component-family>javax.faces.SelectOne</component-family>
      <renderer-type>javax.faces.Radio</renderer-type>
      <renderer-class>
        com.sun.faces.renderkit.html_basic.RadioRenderer
    </renderer-class>

      <attribute>
        <description>
          CSS style(s) to be applied when this component is rendered.
        </description>
        <display-name>CSS Styles</display-name>
        <icon/>
        <attribute-name>style</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Space-separated list of CSS style class(es) to be applied when
          this element is rendered.  This value must be passed through
          as the "class" attribute on generated markup.
        </description>
        <display-name>CSS Style Classes</display-name>
        <icon/>
        <attribute-name>styleClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Advisory title information about markup elements generated
          for this component.
        </description>
        <display-name>Advisory Title</display-name>
        <icon/>
        <attribute-name>title</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Javascript code executed when a pointer button is
          clicked over this element.
        </description>
        <display-name>Button Click Script</display-name>
        <icon/>
        <attribute-name>onclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          double clicked over this element.
        </description>
        <display-name>Double Click Script</display-name>
        <icon/>
        <attribute-name>ondblclick</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          pressed down over this element.
        </description>
        <display-name>Mouse Down Script</display-name>
        <icon/>
        <attribute-name>onmousedown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          released over this element.
        </description>
        <display-name>Mouse Up Script</display-name>
        <icon/>
        <attribute-name>onmouseup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved onto this element.
        </description>
        <display-name>Mouse Over Script</display-name>
        <icon/>
        <attribute-name>onmouseover</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved within this element.
        </description>
        <display-name>Mouse Move Script</display-name>
        <icon/>
        <attribute-name>onmousemove</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a pointer button is
          moved away from this element.
        </description>
        <display-name>Mouse Out Script</display-name>
        <icon/>
        <attribute-name>onmouseout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed and released over this element.
        </description>
        <display-name>Key Press Script</display-name>
        <icon/>
        <attribute-name>onkeypress</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          pressed down over this element.
        </description>
        <display-name>Key Down Script</display-name>
        <icon/>
        <attribute-name>onkeydown</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when a key is
          released over this element.
        </description>
        <display-name>Key Up Script</display-name>
        <icon/>
        <attribute-name>onkeyup</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Access key that, when pressed, transfers focus
          to this element.
        </description>
        <display-name>Access Key</display-name>
        <icon/>
        <attribute-name>accesskey</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus.
        </description>
        <display-name>Focus Off Script</display-name>
        <icon/>
        <attribute-name>onblur</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element receives focus.
        </description>
        <display-name>Focus On Script</display-name>
        <icon/>
        <attribute-name>onfocus</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Position of this element in the tabbing order
          for the current document.  This value must be
          an integer between 0 and 32767.
        </description>
        <display-name>Tab Index</display-name>
        <icon/>
        <attribute-name>tabindex</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Direction indication for text that does not inherit directionality.
          Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
        </description>
        <display-name>Direction</display-name>
        <icon/>
        <attribute-name>dir</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Code describing the language used in the generated markup
          for this component.
        </description>
        <display-name>Language Code</display-name>
        <icon/>
        <attribute-name>lang</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Flag indicating that this element must never receive focus or
          be included in a subsequent submit.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as disabled="disabled".            
        </description>
        <display-name>Disabled Flag</display-name>
        <icon/>
        <attribute-name>disabled</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when this element loses focus
          and its value has been modified since gaining focus.
        </description>
        <display-name>Input Change Script</display-name>
        <icon/>
        <attribute-name>onchange</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Javascript code executed when text within this
          element is selected by the user.
        </description>
        <display-name>Text Select Script</display-name>
        <icon/>
        <attribute-name>onselect</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          Flag indicating that this component will prohibit changes by
          the user.  The element may receive focus unless it has also
          been disabled.  A value of false causes
          no attribute to be rendered, while a value of true causes the
          attribute to be rendered as readonly="readonly".
        </description>
        <display-name>Read Only Flag</display-name>
        <icon/>
        <attribute-name>readonly</attribute-name>
        <attribute-class>boolean</attribute-class>
        <attribute-extension>
          <pass-through>false</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          A localized user presentable name for this component.
        </description>
        <display-name>Label</display-name>
        <icon/>
        <attribute-name>label</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
        <attribute-extension>
          <renderer-attribute-ignore>true</renderer-attribute-ignore>
        </attribute-extension>
      </attribute>


      <attribute>
        <description>
          Width (in pixels) of the border to be drawn
          around the table containing the options list.
        </description>
        <display-name>Table Border</display-name>
        <icon/>
        <attribute-name>border</attribute-name>
        <attribute-class>int</attribute-class>
        <attribute-extension>
          <pass-through>true</pass-through>
        </attribute-extension>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to the rendered label
          on disabled options.
        </description>
        <display-name>Disabled Label Class</display-name>
        <icon/>
        <attribute-name>disabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          CSS style class to apply to the rendered label
          on enabled options.
        </description>
        <display-name>Enabled Label Class</display-name>
        <icon/>
        <attribute-name>enabledClass</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>
      <attribute>
        <description>
          Orientation of the options list to be created.
          Valid values are "pageDirection" (list is laid
          out vertically), or "lineDirection" (list is
          laid out horizontally).  If not specified, the
          default value is "lineDirection".
        </description>
        <display-name>Layout</display-name>
        <icon/>
        <attribute-name>layout</attribute-name>
        <attribute-class>java.lang.String</attribute-class>
      </attribute>

      <renderer-extension>
        <renders-children>true</renders-children>
      </renderer-extension>
    </renderer>
  </render-kit>
</faces-config>
