All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.standard-faces-config.xml Maven / Gradle / Ivy

Go to download

The private implementation classes of the Apache MyFaces Core JSF-2.0 Implementation

There is a newer version: 4.1.0-RC2
Show newest version
<?xml version="1.0" encoding="utf-8"?>

<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
-->

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

<application>
  <action-listener>org.apache.myfaces.application.ActionListenerImpl</action-listener>
  <view-handler>org.apache.myfaces.application.ViewHandlerImpl</view-handler>
  <state-manager>org.apache.myfaces.application.StateManagerImpl</state-manager>
  <navigation-handler>org.apache.myfaces.application.NavigationHandlerImpl</navigation-handler>
  <resource-handler>org.apache.myfaces.application.ResourceHandlerImpl</resource-handler>
</application>
<factory>
  <application-factory>org.apache.myfaces.application.ApplicationFactoryImpl</application-factory>
  <exception-handler-factory>org.apache.myfaces.context.ExceptionHandlerFactoryImpl</exception-handler-factory>
  <external-context-factory>org.apache.myfaces.context.ExternalContextFactoryImpl</external-context-factory>
  <faces-context-factory>org.apache.myfaces.context.FacesContextFactoryImpl</faces-context-factory>
  <partial-view-context-factory>org.apache.myfaces.context.PartialViewContextFactoryImpl</partial-view-context-factory>
  <lifecycle-factory>org.apache.myfaces.lifecycle.LifecycleFactoryImpl</lifecycle-factory>
  <render-kit-factory>org.apache.myfaces.renderkit.RenderKitFactoryImpl</render-kit-factory>
  <visit-context-factory>org.apache.myfaces.component.visit.VisitContextFactoryImpl</visit-context-factory>
  <view-declaration-language-factory>org.apache.myfaces.view.ViewDeclarationLanguageFactoryImpl</view-declaration-language-factory>
  <tag-handler-delegate-factory>org.apache.myfaces.view.facelets.tag.jsf.TagHandlerDelegateFactoryImpl</tag-handler-delegate-factory>
  <exception-handler-factory>org.apache.myfaces.context.ExceptionHandlerFactoryImpl</exception-handler-factory>
</factory>
<behavior>
  <behavior-id>javax.faces.behavior.Ajax</behavior-id>
  <behavior-class>javax.faces.component.behavior.AjaxBehavior</behavior-class>
</behavior>
<converter>
  <converter-for-class>java.math.BigDecimal</converter-for-class>
  <converter-class>javax.faces.convert.BigDecimalConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.math.BigInteger</converter-for-class>
  <converter-class>javax.faces.convert.BigIntegerConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.lang.Boolean</converter-for-class>
  <converter-class>javax.faces.convert.BooleanConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.lang.Byte</converter-for-class>
  <converter-class>javax.faces.convert.ByteConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.lang.Character</converter-for-class>
  <converter-class>javax.faces.convert.CharacterConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.lang.Double</converter-for-class>
  <converter-class>javax.faces.convert.DoubleConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.lang.Enum</converter-for-class>
  <converter-class>javax.faces.convert.EnumConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.lang.Float</converter-for-class>
  <converter-class>javax.faces.convert.FloatConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.lang.Integer</converter-for-class>
  <converter-class>javax.faces.convert.IntegerConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.lang.Long</converter-for-class>
  <converter-class>javax.faces.convert.LongConverter</converter-class>
</converter>
<converter>
  <converter-for-class>java.lang.Short</converter-for-class>
  <converter-class>javax.faces.convert.ShortConverter</converter-class>
</converter>


  <component>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <component-type>javax.faces.Column</component-type>
    <component-class>javax.faces.component.UIColumn</component-class>
    <facet>
        <facet-name>footer</facet-name>
    </facet>
    <facet>
        <facet-name>header</facet-name>
    </facet>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Column</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[UICommand is a base abstraction for components that implement ActionSource.]]></description>
    <component-type>javax.faces.Command</component-type>
    <component-class>javax.faces.component.UICommand</component-class>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events
should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods
are fired instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[The text to display to the user for this command component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[The action to take when this command is invoked.
<p>
If the value is an expression, it is expected to be a method binding EL expression that identifies
an action method. An action method accepts no parameters and has a String return value, called the
action outcome, that identifies the next view displayed. The phase that this event is fired in
can be controlled via the immediate attribute.
</p>
<p> 
If the value is a string literal, it is treated as a navigation outcome for the current view. This
is functionally equivalent to a reference to an action method that returns the string literal.
</p>]]></description>
         <property-name>actionExpression</property-name>
         <property-class>javax.el.MethodExpression</property-class>
    </property>
    <property>
         <description><![CDATA[]]></description>
         <property-name>actionListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Command</component-family>
      <renderer-type>javax.faces.Button</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Represents an abstraction of a component which has multiple "rows" of data.
<p>
The children of this component are expected to be UIColumn components.
<p>
Note that the same set of child components are reused to implement each row of the table in turn during such phases
as apply-request-values and render-response. Altering any of the members of these components therefore affects the
attribute for every row, except for the following members:
<ul>
<li>submittedValue
<li>value (where no EL binding is used)
<li>valid
</ul>
<p>
This reuse of the child components also means that it is not possible to save a reference to a component during table
processing, then access it later and expect it to still represent the same row of the table.
<h1>
Implementation Notes</h1>
<p>
Each of the UIColumn children of this component has a few component children of its own to render the contents of the
table cell. However there can be a very large number of rows in a table, so it isn't efficient for the UIColumn and
all its child objects to be duplicated for each row in the table. Instead the "flyweight" pattern is used where a
serialized state is held for each row. When setRowIndex is invoked, the UIColumn objects and their children serialize
their current state then reinitialise themselves from the appropriate saved state. This allows a single set of real
objects to represent multiple objects which have the same types but potentially different internal state. When a row
is selected for the first time, its state is set to a clean "initial" state. Transient components (including any
read-only component) do not save their state; they are just reinitialised as required. The state saved/restored when
changing rows is not the complete component state, just the fields that are expected to vary between rows:
"submittedValue", "value", "isValid".
</p>
<p>
Note that a table is a "naming container", so that components within the table have their ids prefixed with the id of
the table. Actually, when setRowIndex has been called on a table with id of "zzz" the table pretends to its children
that its ID is "zzz_n" where n is the row index. This means that renderers for child components which call
component.getClientId automatically get ids of form "zzz_n:childId" thus ensuring that components in different rows
of the table get different ids.
</p>
<p>
When decoding a submitted page, this class iterates over all its possible rowIndex values, restoring the appropriate
serialized row state then calling processDecodes on the child components. Because the child components (or their
renderers) use getClientId to get the request key to look for parameter data, and because this object pretends to
have a different id per row ("zzz_n") a single child component can decode data from each table row in turn without
being aware that it is within a table. The table's data model is updated before each call to child.processDecodes, so
the child decode method can assume that the data model's rowData points to the model object associated with the row
currently being decoded. Exactly the same process applies for the later validation and updateModel phases.
</p>
<p>
When the data model for the table is bound to a backing bean property, and no validation errors have occured during
processing of a postback, the data model is refetched at the start of the rendering phase (ie after the update model
phase) so that the contents of the data model can be changed as a result of the latest form submission. Because the
saved row state must correspond to the elements within the data model, the row state must be discarded whenever a new
data model is fetched; not doing this would cause all sorts of inconsistency issues. This does imply that changing
the state of any of the members "submittedValue", "value" or "valid" of a component within the table during the
invokeApplication phase has no effect on the rendering of the table. When a validation error has occurred, a new
DataModel is <i>not</i> fetched, and the saved state of the child components is <i>not</i> discarded.
</p>
see Javadoc of the <a href="http://java.sun.com/j2ee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>
for more information.]]></description>
    <component-type>javax.faces.Data</component-type>
    <component-class>javax.faces.component.UIData</component-class>
    <facet>
        <facet-name>footer</facet-name>
    </facet>
    <facet>
        <facet-name>header</facet-name>
    </facet>
    <property>
         <description><![CDATA[An EL expression that specifies the data model that backs this table.
<p>
The value referenced by the EL expression can be of any type.
</p>
<ul>
<li>A value of type DataModel is used directly.</li>
<li>Array-like parameters of type array-of-Object, java.util.List, java.sql.ResultSet or
javax.servlet.jsp.jstl.sql.Result are wrapped in a corresponding DataModel that knows how to iterate over the
elements.</li>
<li>Other values are wrapped in a DataModel as a single row.</li>
</ul>
<p>
Note in particular that unordered collections, eg Set are not supported. Therefore if the value expression
references such an object then the table will be considered to contain just one element - the collection itself.
</p>]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[Defines the index of the first row to be displayed, starting from 0.]]></description>
         <property-name>first</property-name>
         <property-class>int</property-class>
    </property>
    <property>
         <description><![CDATA[Defines the maximum number of rows of data to be displayed.
<p>
Specify zero to display all rows from the "first" row to the end of available data.
</p>]]></description>
         <property-name>rows</property-name>
         <property-class>int</property-class>
    </property>
    <property>
         <description><![CDATA[Defines the name of the request-scope variable that will hold the current row during iteration.
<p>
During rendering of child components of this UIData, the variable with this name can be read to learn what the
"rowData" object for the row currently being rendered is.
</p>
<p>
This value must be a static value, ie an EL expression is not permitted.
</p>]]></description>
         <property-name>var</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Data</component-family>
      <renderer-type>javax.faces.Table</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <component-type>javax.faces.Form</component-type>
    <component-class>javax.faces.component.UIForm</component-class>
    <property>
         <property-name>prependId</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Form</component-family>
      <renderer-type>javax.faces.Form</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Displays a graphical image.
<p>
See the javadoc for this class in the
<a href="http://java.sun.com/j2ee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>
for further details.]]></description>
    <component-type>javax.faces.Graphic</component-type>
    <component-class>javax.faces.component.UIGraphic</component-class>
    <property>
         <description><![CDATA[An alias for the "value" attribute.]]></description>
         <property-name>url</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The URL of the image.
<p>
If the URL starts with a '/', it is relative to the context path of the web application.
</p>]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Graphic</component-family>
      <renderer-type>javax.faces.Image</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Displays a value to the user.]]></description>
    <component-type>javax.faces.Output</component-type>
    <component-class>javax.faces.component.UIOutput</component-class>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[UICommand is a base abstraction for components that implement ActionSource.
<p>
See the javadoc for this class in the <a href="http://java.sun.com/j2ee/javaserverfaces/1.2/docs/api/index.html">JSF
Specification</a> for further details.
<p>]]></description>
    <component-type>javax.faces.Input</component-type>
    <component-class>javax.faces.component.UIInput</component-class>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Base class for components that provide a new "namespace" for the ids of their
child components.
<p>
See the javadocs for interface NamingContainer for further details.
</p>]]></description>
    <component-type>javax.faces.NamingContainer</component-type>
    <component-class>javax.faces.component.UINamingContainer</component-class>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.NamingContainer</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[]]></description>
    <component-type>javax.faces.OutcomeTarget</component-type>
    <component-class>javax.faces.component.UIOutcomeTarget</component-class>
    <property>
         <property-name>outcome</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>includeViewParams</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.OutcomeTarget</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[]]></description>
    <component-type>javax.faces.Panel</component-type>
    <component-class>javax.faces.component.UIPanel</component-class>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Panel</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[A component that allows the user to select or unselect an object.
<p>
This can also be used to choose between two states such as true/false or on/off.
</p>
<p>
See the javadoc for this class in the
<a href="http://java.sun.com/j2ee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>
for further details.
</p>]]></description>
    <component-type>javax.faces.SelectBoolean</component-type>
    <component-class>javax.faces.component.UISelectBoolean</component-class>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectBoolean</component-family>
      <renderer-type>javax.faces.Checkbox</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Base class for the various component classes that allow a user to select zero or more options from a set.
<p>
This is not an abstract class; java code can create an instance of this, configure its rendererType appropriately,
and add it to a view. However there is no tag class for this component, ie it cannot be added directly to a page when
using JSP (and other presentation technologies are expected to behave similarly). Instead, there is a family of
subclasses that extend this base functionality, and they do have tag classes.
</p>
<p>
See the javadoc for this class in the <a href="http://java.sun.com/j2ee/javaserverfaces/1.2/docs/api/index.html">JSF
Specification</a> for further details.
</p>]]></description>
    <component-type>javax.faces.SelectMany</component-type>
    <component-class>javax.faces.component.UISelectMany</component-class>
    <property>
         <property-name>hideNoSelectionOption</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>collectionType</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectMany</component-family>
      <renderer-type>javax.faces.Listbox</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Component for choosing one option out of a set of possibilities.
<p>
This component is expected to have children of type UISelectItem or UISelectItems; these define the set of possible
options that the user can choose from.
</p>
<p>
See the javadoc for this class in the <a
href="http://java.sun.com/j2ee/javaserverfaces/1.1_01/docs/api/index.html">JSF Specification</a> for further details.
</p>]]></description>
    <component-type>javax.faces.SelectOne</component-type>
    <component-class>javax.faces.component.UISelectOne</component-class>
    <property>
         <property-name>hideNoSelectionOption</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectOne</component-family>
      <renderer-type>javax.faces.Menu</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[TODO: documentation on jsp and pld are not the same. It appear two
params: maxlength and for, but no property getter and setter founded here. 
If maxlength is used, we can put something like this: 
JSFJspProperty(name = "maxlength", returnType = "java.lang.String")]]></description>
    <component-type>javax.faces.ViewParameter</component-type>
    <component-class>javax.faces.component.UIViewParameter</component-class>
    <property>
         <description><![CDATA[The max number or characters allowed for this param]]></description>
         <property-name>maxlength</property-name>
         <property-class>int</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.ViewParameter</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Creates a JSF View, which is a container that holds all of the components that are part of the view.
<p>
Unless otherwise specified, all attributes accept static values or EL expressions.
</p>
<p>
See the javadoc for this class in the <a href="http://java.sun.com/j2ee/javaserverfaces/1.2/docs/api/index.html">JSF
Specification</a> for further details.
</p>]]></description>
    <component-type>javax.faces.ViewRoot</component-type>
    <component-class>javax.faces.component.UIViewRoot</component-class>
    <property>
         <description><![CDATA[MethodBinding pointing to a method that takes a javax.faces.event.PhaseEvent and returns void, called after every
phase except for restore view.]]></description>
         <property-name>afterPhaseListener</property-name>
         <property-class>javax.el.MethodExpression</property-class>
    </property>
    <property>
         <description><![CDATA[MethodBinding pointing to a method that takes a javax.faces.event.PhaseEvent and returns void, called before
every phase except for restore view.]]></description>
         <property-name>beforePhaseListener</property-name>
         <property-class>javax.el.MethodExpression</property-class>
    </property>
    <property>
         <description><![CDATA[The locale for this view.
<p>
Defaults to the default locale specified in the faces configuration file.
</p>]]></description>
         <property-name>locale</property-name>
         <property-class>java.util.Locale</property-class>
    </property>
    <property>
         <description><![CDATA[Defines what renderkit should be used to render this view.]]></description>
         <property-name>renderKitId</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.ViewRoot</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[UIMessage is the base component class for components
that display a single message on behalf of a component.]]></description>
    <component-type>javax.faces.Message</component-type>
    <component-class>javax.faces.component.UIMessage</component-class>
    <property>
         <description><![CDATA[The ID of the component whose attached FacesMessage object (if present) 
should be diplayed by this component.
<p>
This is a required property on the component.
</p>]]></description>
         <property-name>for</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Specifies whether the detailed information from the message should be shown. 
Default to true.]]></description>
         <property-name>showDetail</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[Specifies whether the summary information from the message should be shown.
Defaults to false.]]></description>
         <property-name>showSummary</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Message</component-family>
      <renderer-type>javax.faces.Message</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[UIMessage is the base component class for components
that display a multiple messages on behalf of a component.]]></description>
    <component-type>javax.faces.Messages</component-type>
    <component-class>javax.faces.component.UIMessages</component-class>
    <property>
         <description><![CDATA[Specifies whether only messages (FacesMessage objects) not associated with a
specific component should be displayed, ie whether messages should be ignored
if they are attached to a particular component. Defaults to false.]]></description>
         <property-name>globalOnly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Specifies whether the detailed information from the message should be shown. 
Default to false.]]></description>
         <property-name>showDetail</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Specifies whether the summary information from the message should be shown.
Defaults to true.]]></description>
         <property-name>showSummary</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[The ID of the component whose attached FacesMessage object (if present) 
should be diplayed by this component. It takes precedence over globalOnly.]]></description>
         <property-name>for</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Messages</component-family>
      <renderer-type>javax.faces.Messages</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[This tag associates a parameter name-value pair with the nearest parent UIComponent. A UIComponent is created to
represent this name-value pair, and stored as a child of the parent component; what effect this has depends upon the
renderer of that parent component.
<p>
Unless otherwise specified, all attributes accept static values or EL expressions.
</p>]]></description>
    <component-type>javax.faces.Parameter</component-type>
    <component-class>javax.faces.component.UIParameter</component-class>
    <property>
         <description><![CDATA[The value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[The name under which the value is stored.]]></description>
         <property-name>name</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Parameter</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[This tag associates a single SelectItem with the nearest parent UIComponent. The item represents a single option for
a component such as an h:selectBooleanCheckbox or h:selectOneMenu. See also component selectItems.
<p>
Unless otherwise specified, all attributes accept static values or EL expressions.
</p>
<p>
UISelectItem should be nestetd inside a UISelectMany or UISelectOne component, and results in the addition of a
SelectItem instance to the list of available options for the parent component
</p>]]></description>
    <component-type>javax.faces.SelectItem</component-type>
    <component-class>javax.faces.component.UISelectItem</component-class>
    <property>
         <description><![CDATA[The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[Determine whether this item can be chosen by the user. When true, this item cannot be chosen by the user. If this
method is ever called, then any EL-binding for the disabled property will be ignored.]]></description>
         <property-name>itemDisabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[The escape setting for the label of this selection item.]]></description>
         <property-name>itemEscaped</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[For use in development tools.]]></description>
         <property-name>itemDescription</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The string which will be presented to the user for this option.]]></description>
         <property-name>itemLabel</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The value for this Item.]]></description>
         <property-name>itemValue</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[Indicate this component represent no selection option. 
Default value is false.]]></description>
         <property-name>noSelectionOption</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectItem</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[This tag associates a set of selection list items with the nearest
parent UIComponent. The set of SelectItem objects is retrieved via
a value-binding.
<p>
Unless otherwise specified, all attributes accept static values
or EL expressions.
</p>
<p>
UISelectItems should be nested inside a UISelectMany or UISelectOne component,
and results in  the addition of one ore more SelectItem instance to the list of available options
for the parent component
</p>]]></description>
    <component-type>javax.faces.SelectItems</component-type>
    <component-class>javax.faces.component.UISelectItems</component-class>
    <property>
         <description><![CDATA[The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[Name of a request-scope attribute under which the current item
of the collection, array, etc. of the value attribute will be 
exposed so that it can be referred to in EL for other attributes 
of this component.]]></description>
         <property-name>var</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The value for the current item.]]></description>
         <property-name>itemValue</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[The label of the current item.]]></description>
         <property-name>itemLabel</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The description of the current item.]]></description>
         <property-name>itemDescription</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Determines if the current item is selectable or not.]]></description>
         <property-name>itemDisabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Determines if the rendered markup for the current item receives
normal JSF HTML escaping or not.]]></description>
         <property-name>itemLabelEscaped</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectItems</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders as an HTML input tag with its type set to "hidden".
Unless otherwise specified, all attributes accept static values
or EL expressions.]]></description>
    <component-type>javax.faces.HtmlInputHidden</component-type>
    <component-class>javax.faces.component.html.HtmlInputHidden</component-class>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Hidden</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[]]></description>
    <component-type>javax.faces.OutputBody</component-type>
    <component-class>javax.faces.component.html.HtmlBody</component-class>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the page is loaded]]></description>
         <property-name>onload</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the page is unloaded]]></description>
         <property-name>onunload</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Body</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Creates a UIComponent that represents a single column of data within a parent UIData component.
<p>
This tag is commonly used as a child of the h:dataTable tag, to represent a column of
data within an html table. It can be decorated with nested "header" and "footer" facets
which cause the output of header and footer rows.
</p>
<p>
The non-facet child components of this column are re-rendered on each table row
to generate the content of the cell. Those child components can reference the "var"
attribute of the containing h:dataTable to generate appropriate output for each row.
</p>]]></description>
    <component-type>javax.faces.HtmlColumn</component-type>
    <component-class>javax.faces.component.html.HtmlColumn</component-class>
    <facet>
        <facet-name>footer</facet-name>
    </facet>
    <facet>
        <facet-name>header</facet-name>
    </facet>
    <property>
         <description><![CDATA[CSS class to be used for the header.]]></description>
         <property-name>headerClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS class to be used for the footer.]]></description>
         <property-name>footerClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[If true the column is rendered with "th" and scope="row" attribute,
instead "td"]]></description>
         <property-name>rowHeader</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Column</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[This tag renders as an HTML input element.]]></description>
    <component-type>javax.faces.HtmlCommandButton</component-type>
    <component-class>javax.faces.component.html.HtmlCommandButton</component-class>
    <property>
         <description><![CDATA[HTML: The URL of an image that renders in place of the button.]]></description>
         <property-name>image</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: A hint to the user agent about the content type of the linked resource.]]></description>
         <property-name>type</property-name>
         <property-class>java.lang.String</property-class>
         <default-value>"submit"</default-value>
    </property>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies alternative text that can be used by a browser that can't show this element.]]></description>
         <property-name>alt</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events
should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods
are fired instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[The text to display to the user for this command component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[The action to take when this command is invoked.
<p>
If the value is an expression, it is expected to be a method binding EL expression that identifies
an action method. An action method accepts no parameters and has a String return value, called the
action outcome, that identifies the next view displayed. The phase that this event is fired in
can be controlled via the immediate attribute.
</p>
<p> 
If the value is a string literal, it is treated as a navigation outcome for the current view. This
is functionally equivalent to a reference to an action method that returns the string literal.
</p>]]></description>
         <property-name>actionExpression</property-name>
         <property-class>javax.el.MethodExpression</property-class>
    </property>
    <property>
         <description><![CDATA[]]></description>
         <property-name>actionListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Command</component-family>
      <renderer-type>javax.faces.Button</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[This tag renders as an HTML a element.]]></description>
    <component-type>javax.faces.HtmlCommandLink</component-type>
    <component-class>javax.faces.component.html.HtmlCommandLink</component-class>
    <property>
         <description><![CDATA[When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the character encoding of the linked resource.]]></description>
         <property-name>charset</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The coordinates of regions within a client side image map.]]></description>
         <property-name>coords</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The language of the linked resource.]]></description>
         <property-name>hreflang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The relationship between the current document and
the linked resource.]]></description>
         <property-name>rel</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The type(s) describing the reverse link for the linked
resource.]]></description>
         <property-name>rev</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The shape of a region in a client side image map.]]></description>
         <property-name>shape</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Names the frame that should display content generated by invoking this action.]]></description>
         <property-name>target</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: A hint to the user agent about the content type of the linked resource.]]></description>
         <property-name>type</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events
should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods
are fired instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[The text to display to the user for this command component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[The action to take when this command is invoked.
<p>
If the value is an expression, it is expected to be a method binding EL expression that identifies
an action method. An action method accepts no parameters and has a String return value, called the
action outcome, that identifies the next view displayed. The phase that this event is fired in
can be controlled via the immediate attribute.
</p>
<p> 
If the value is a string literal, it is treated as a navigation outcome for the current view. This
is functionally equivalent to a reference to an action method that returns the string literal.
</p>]]></description>
         <property-name>actionExpression</property-name>
         <property-class>javax.el.MethodExpression</property-class>
    </property>
    <property>
         <description><![CDATA[]]></description>
         <property-name>actionListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Command</component-family>
      <renderer-type>javax.faces.Link</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[This component renders an HTML table element.
<p>
This component may have nested facets with names "header" and "footer"
to specify header and footer rows.
</p>
<p>
The non-facet children of this component are expected to be
h:column components which describe the columns of the table.
</p>]]></description>
    <component-type>javax.faces.HtmlDataTable</component-type>
    <component-class>javax.faces.component.html.HtmlDataTable</component-class>
    <facet>
        <facet-name>footer</facet-name>
    </facet>
    <facet>
        <facet-name>header</facet-name>
    </facet>
    <property>
         <description><![CDATA[HTML: The background color of this element.]]></description>
         <property-name>bgcolor</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSV of several row index to start (and end a previous) tbody element]]></description>
         <property-name>bodyrows</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the width of the border of this element, in pixels.  Deprecated in HTML 4.01.]]></description>
         <property-name>border</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the amount of empty space between the cell border and
its contents.  It can be either a pixel length or a percentage.]]></description>
         <property-name>cellpadding</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the amount of space between the cells of the table.
It can be either a pixel length or a percentage of available 
space.]]></description>
         <property-name>cellspacing</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A comma separated list of CSS class names to apply to td elements in
each column.]]></description>
         <property-name>columnClasses</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class to be applied to footer cells.]]></description>
         <property-name>footerClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Controls what part of the frame that surrounds a table is 
visible.  Values include:  void, above, below, hsides, lhs, 
rhs, vsides, box, and border.]]></description>
         <property-name>frame</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class to be applied to header cells.]]></description>
         <property-name>headerClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A comma separated list of CSS class names to apply to td elements in
each row.]]></description>
         <property-name>rowClasses</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Controls how rules are rendered between cells.  Values include:
none, groups, rows, cols, and all.]]></description>
         <property-name>rules</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Provides a summary of the contents of the table, for
accessibility purposes.]]></description>
         <property-name>summary</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the desired width of the table, as a pixel length or
a percentage of available space.]]></description>
         <property-name>width</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A comma separated list of CSS class names to apply to all captions.
If there are less classes than the number of rows, apply the same
sequence of classes to the remaining captions, so the pattern is repeated.
More than one class can be applied to a row by separating the classes
with a space.]]></description>
         <property-name>captionClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The CSS class to be applied to the Caption.]]></description>
         <property-name>captionStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[An EL expression that specifies the data model that backs this table.
<p>
The value referenced by the EL expression can be of any type.
</p>
<ul>
<li>A value of type DataModel is used directly.</li>
<li>Array-like parameters of type array-of-Object, java.util.List, java.sql.ResultSet or
javax.servlet.jsp.jstl.sql.Result are wrapped in a corresponding DataModel that knows how to iterate over the
elements.</li>
<li>Other values are wrapped in a DataModel as a single row.</li>
</ul>
<p>
Note in particular that unordered collections, eg Set are not supported. Therefore if the value expression
references such an object then the table will be considered to contain just one element - the collection itself.
</p>]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[Defines the index of the first row to be displayed, starting from 0.]]></description>
         <property-name>first</property-name>
         <property-class>int</property-class>
    </property>
    <property>
         <description><![CDATA[Defines the maximum number of rows of data to be displayed.
<p>
Specify zero to display all rows from the "first" row to the end of available data.
</p>]]></description>
         <property-name>rows</property-name>
         <property-class>int</property-class>
    </property>
    <property>
         <description><![CDATA[Defines the name of the request-scope variable that will hold the current row during iteration.
<p>
During rendering of child components of this UIData, the variable with this name can be read to learn what the
"rowData" object for the row currently being rendered is.
</p>
<p>
This value must be a static value, ie an EL expression is not permitted.
</p>]]></description>
         <property-name>var</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Data</component-family>
      <renderer-type>javax.faces.Table</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders an HTML form element.]]></description>
    <component-type>javax.faces.HtmlForm</component-type>
    <component-class>javax.faces.component.html.HtmlForm</component-class>
    <property>
         <description><![CDATA[HTML: Provides a comma-separated list of content types that the 
server processing this form can handle.]]></description>
         <property-name>accept</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The list of character encodings accepted by the server for this
form.]]></description>
         <property-name>acceptcharset</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The content type used to submit this form to the server.]]></description>
         <property-name>enctype</property-name>
         <property-class>java.lang.String</property-class>
         <default-value>"application/x-www-form-urlencoded"</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when this form is reset.]]></description>
         <property-name>onreset</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when this form is submitted.]]></description>
         <property-name>onsubmit</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Names the frame that should display content generated by invoking this action.]]></description>
         <property-name>target</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>prependId</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Form</component-family>
      <renderer-type>javax.faces.Form</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders an HTML img element.
<p>
The value attribute specifies the url of the image to be displayed;
see the documentation for attribute "url" for more details.
</p>]]></description>
    <component-type>javax.faces.HtmlGraphicImage</component-type>
    <component-class>javax.faces.component.html.HtmlGraphicImage</component-class>
    <property>
         <description><![CDATA[HTML: Overrides the natural height of this image, by specifying height in pixels.]]></description>
         <property-name>height</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies server-side image map handling for this image.]]></description>
         <property-name>ismap</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: A link to a long description of the image.]]></description>
         <property-name>longdesc</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies an image map to use with this image.]]></description>
         <property-name>usemap</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Overrides the natural width of this image, by specifying width in pixels.]]></description>
         <property-name>width</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[]]></description>
         <property-name>library</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[]]></description>
         <property-name>name</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies alternative text that can be used by a browser that can't show this element.]]></description>
         <property-name>alt</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[An alias for the "value" attribute.]]></description>
         <property-name>url</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The URL of the image.
<p>
If the URL starts with a '/', it is relative to the context path of the web application.
</p>]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Graphic</component-family>
      <renderer-type>javax.faces.Image</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[]]></description>
    <component-type>javax.faces.OutputHead</component-type>
    <component-class>javax.faces.component.html.HtmlHead</component-class>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Head</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders as an HTML input tag with its type set to "password".]]></description>
    <component-type>javax.faces.HtmlInputSecret</component-type>
    <component-class>javax.faces.component.html.HtmlInputSecret</component-class>
    <property>
         <description><![CDATA[HTML: The maximum number of characters allowed to be entered.]]></description>
         <property-name>maxlength</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[If true, the value will be re-sent (in plaintext) when the form
is rerendered (see JSF.7.4.4). Default is false.]]></description>
         <property-name>redisplay</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: The initial width of this control, in characters.]]></description>
         <property-name>size</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[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>
         <property-name>autocomplete</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies alternative text that can be used by a browser that can't show this element.]]></description>
         <property-name>alt</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Secret</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders a HTML input element.]]></description>
    <component-type>javax.faces.HtmlInputText</component-type>
    <component-class>javax.faces.component.html.HtmlInputText</component-class>
    <property>
         <description><![CDATA[HTML: The maximum number of characters allowed to be entered.]]></description>
         <property-name>maxlength</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: The initial width of this control, in characters.]]></description>
         <property-name>size</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[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>
         <property-name>autocomplete</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies alternative text that can be used by a browser that can't show this element.]]></description>
         <property-name>alt</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders a HTML textarea element.]]></description>
    <component-type>javax.faces.HtmlInputTextarea</component-type>
    <component-class>javax.faces.component.html.HtmlInputTextarea</component-class>
    <property>
         <description><![CDATA[HTML: The width of this element, in characters.]]></description>
         <property-name>cols</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: The height of this element, in characters.]]></description>
         <property-name>rows</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Input</component-family>
      <renderer-type>javax.faces.Textarea</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders text displaying information about the first FacesMessage
          that is assigned to the component referenced by the "for" attribute.]]></description>
    <component-type>javax.faces.HtmlMessage</component-type>
    <component-class>javax.faces.component.html.HtmlMessage</component-class>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS class to be used for messages with severity "ERROR".]]></description>
         <property-name>errorClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS style to be used for messages with severity "ERROR".]]></description>
         <property-name>errorStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS class to be used for messages with severity "FATAL".]]></description>
         <property-name>fatalClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS style to be used for messages with severity "FATAL".]]></description>
         <property-name>fatalStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS class to be used for messages with severity "INFO".]]></description>
         <property-name>infoClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS style to be used for messages with severity "INFO".]]></description>
         <property-name>infoStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[If true, the message summary will be rendered as a tooltip (i.e. HTML title attribute).]]></description>
         <property-name>tooltip</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[CSS class to be used for messages with severity "WARN".]]></description>
         <property-name>warnClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS style to be used for messages with severity "WARN".]]></description>
         <property-name>warnStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The ID of the component whose attached FacesMessage object (if present) 
should be diplayed by this component.
<p>
This is a required property on the component.
</p>]]></description>
         <property-name>for</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Specifies whether the detailed information from the message should be shown. 
Default to true.]]></description>
         <property-name>showDetail</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[Specifies whether the summary information from the message should be shown.
Defaults to false.]]></description>
         <property-name>showSummary</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Message</component-family>
      <renderer-type>javax.faces.Message</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders all or some FacesMessages depending on the "for" and
"globalOnly" attributes.

<ul>
<li>If globalOnly = true, only global messages, that have no
associated clientId, will be displayed.</li>
<li>else if there is a "for" attribute, only messages that are
assigned to the component referenced by the "for" attribute
are displayed.</li>
<li>else all messages are displayed.</li>
</ul>]]></description>
    <component-type>javax.faces.HtmlMessages</component-type>
    <component-class>javax.faces.component.html.HtmlMessages</component-class>
    <property>
         <description><![CDATA[The layout: "table" or "list". Default: list]]></description>
         <property-name>layout</property-name>
         <property-class>java.lang.String</property-class>
         <default-value>"list"</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS class to be used for messages with severity "ERROR".]]></description>
         <property-name>errorClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS style to be used for messages with severity "ERROR".]]></description>
         <property-name>errorStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS class to be used for messages with severity "FATAL".]]></description>
         <property-name>fatalClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS style to be used for messages with severity "FATAL".]]></description>
         <property-name>fatalStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS class to be used for messages with severity "INFO".]]></description>
         <property-name>infoClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS style to be used for messages with severity "INFO".]]></description>
         <property-name>infoStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[If true, the message summary will be rendered as a tooltip (i.e. HTML title attribute).]]></description>
         <property-name>tooltip</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[CSS class to be used for messages with severity "WARN".]]></description>
         <property-name>warnClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS style to be used for messages with severity "WARN".]]></description>
         <property-name>warnStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Specifies whether only messages (FacesMessage objects) not associated with a
specific component should be displayed, ie whether messages should be ignored
if they are attached to a particular component. Defaults to false.]]></description>
         <property-name>globalOnly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Specifies whether the detailed information from the message should be shown. 
Default to false.]]></description>
         <property-name>showDetail</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Specifies whether the summary information from the message should be shown.
Defaults to true.]]></description>
         <property-name>showSummary</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[The ID of the component whose attached FacesMessage object (if present) 
should be diplayed by this component. It takes precedence over globalOnly.]]></description>
         <property-name>for</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Messages</component-family>
      <renderer-type>javax.faces.Messages</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[]]></description>
    <component-type>javax.faces.HtmlOutcomeTargetButton</component-type>
    <component-class>javax.faces.component.html.HtmlOutcomeTargetButton</component-class>
    <property>
         <description><![CDATA[HTML: the value to put as image attribute]]></description>
         <property-name>image</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies alternative text that can be used by a browser that can't show this element.]]></description>
         <property-name>alt</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>outcome</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>includeViewParams</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.OutcomeTarget</component-family>
      <renderer-type>javax.faces.Button</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[]]></description>
    <component-type>javax.faces.HtmlOutcomeTargetLink</component-type>
    <component-class>javax.faces.component.html.HtmlOutcomeTargetLink</component-class>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the character encoding of the linked resource.]]></description>
         <property-name>charset</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The coordinates of regions within a client side image map.]]></description>
         <property-name>coords</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The language of the linked resource.]]></description>
         <property-name>hreflang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The relationship between the current document and
the linked resource.]]></description>
         <property-name>rel</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The type(s) describing the reverse link for the linked
resource.]]></description>
         <property-name>rev</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The shape of a region in a client side image map.]]></description>
         <property-name>shape</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Names the frame that should display content generated by invoking this action.]]></description>
         <property-name>target</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: A hint to the user agent about the content type of the linked resource.]]></description>
         <property-name>type</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <property-name>outcome</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>includeViewParams</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.OutcomeTarget</component-family>
      <renderer-type>javax.faces.Link</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders as text, applying the child f:param values to the value attribute as a MessageFormat string.

If this element has an ID or CSS style properties, the text is wrapped in a span element.]]></description>
    <component-type>javax.faces.HtmlOutputFormat</component-type>
    <component-class>javax.faces.component.html.HtmlOutputFormat</component-class>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Indicates whether rendered markup should be escaped.
Default: true]]></description>
         <property-name>escape</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Format</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders a HTML label element.

In addition to the JSF specification, MyFaces allows it to directly give an output text via the "value" attribute.]]></description>
    <component-type>javax.faces.HtmlOutputLabel</component-type>
    <component-class>javax.faces.component.html.HtmlOutputLabel</component-class>
    <property>
         <description><![CDATA[The client ID of the target input element of this label.]]></description>
         <property-name>for</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Indicates whether rendered markup should be escaped.
Default: true]]></description>
         <property-name>escape</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Label</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders a HTML a element.

Child f:param elements are added to the href attribute as query parameters.  Other children
are rendered as the link text or image.]]></description>
    <component-type>javax.faces.HtmlOutputLink</component-type>
    <component-class>javax.faces.component.html.HtmlOutputLink</component-class>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the character encoding of the linked resource.]]></description>
         <property-name>charset</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The coordinates of regions within a client side image map.]]></description>
         <property-name>coords</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The language of the linked resource.]]></description>
         <property-name>hreflang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The relationship between the current document and
the linked resource.]]></description>
         <property-name>rel</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The type(s) describing the reverse link for the linked
resource.]]></description>
         <property-name>rev</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The shape of a region in a client side image map.]]></description>
         <property-name>shape</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Names the frame that should display content generated by invoking this action.]]></description>
         <property-name>target</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: A hint to the user agent about the content type of the linked resource.]]></description>
         <property-name>type</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Link</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Renders the value of the associated UIOutput component.

If this element has an ID or CSS style properties, the text is wrapped in a span element.]]></description>
    <component-type>javax.faces.HtmlOutputText</component-type>
    <component-class>javax.faces.component.html.HtmlOutputText</component-class>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Indicates whether rendered markup should be escaped.
Default: true]]></description>
         <property-name>escape</property-name>
         <property-class>boolean</property-class>
         <default-value>true</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Output</component-family>
      <renderer-type>javax.faces.Text</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[This element renders as an HTML table with specified number of columns.
<p>
Children of this element are rendered as cells in the table, filling
rows from left to right.  Facets named "header" and "footer" are optional
and specify the content of the thead and tfoot rows, respectively.
</p>]]></description>
    <component-type>javax.faces.HtmlPanelGrid</component-type>
    <component-class>javax.faces.component.html.HtmlPanelGrid</component-class>
    <property>
         <description><![CDATA[HTML: The background color of this element.]]></description>
         <property-name>bgcolor</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSV of several row index to start (and end a previous) tbody element]]></description>
         <property-name>bodyrows</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the width of the border of this element, in pixels.  Deprecated in HTML 4.01.]]></description>
         <property-name>border</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the amount of empty space between the cell border and
its contents.  It can be either a pixel length or a percentage.]]></description>
         <property-name>cellpadding</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the amount of space between the cells of the table.
It can be either a pixel length or a percentage of available 
space.]]></description>
         <property-name>cellspacing</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A comma separated list of CSS class names to apply to td elements in
each column.]]></description>
         <property-name>columnClasses</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Specifies the number of columns in the grid.]]></description>
         <property-name>columns</property-name>
         <property-class>int</property-class>
         <default-value>1</default-value>
    </property>
    <property>
         <description><![CDATA[The CSS class to be applied to footer cells.]]></description>
         <property-name>footerClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Controls what part of the frame that surrounds a table is 
visible.  Values include:  void, above, below, hsides, lhs, 
rhs, vsides, box, and border.]]></description>
         <property-name>frame</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class to be applied to header cells.]]></description>
         <property-name>headerClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A comma separated list of CSS class names to apply to td elements in
each row.]]></description>
         <property-name>rowClasses</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Controls how rules are rendered between cells.  Values include:
none, groups, rows, cols, and all.]]></description>
         <property-name>rules</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Provides a summary of the contents of the table, for
accessibility purposes.]]></description>
         <property-name>summary</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the desired width of the table, as a pixel length or
a percentage of available space.]]></description>
         <property-name>width</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A comma separated list of CSS class names to apply to all captions.
If there are less classes than the number of rows, apply the same
sequence of classes to the remaining captions, so the pattern is repeated.
More than one class can be applied to a row by separating the classes
with a space.]]></description>
         <property-name>captionClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The CSS class to be applied to the Caption.]]></description>
         <property-name>captionStyle</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Panel</component-family>
      <renderer-type>javax.faces.Grid</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[This element is used to group other components where the specification requires one child element.

If any of the HTML or CSS attributes are set, its content is rendered within a span element.]]></description>
    <component-type>javax.faces.HtmlPanelGroup</component-type>
    <component-class>javax.faces.component.html.HtmlPanelGroup</component-class>
    <property>
         <description><![CDATA[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>
         <property-name>layout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Panel</component-family>
      <renderer-type>javax.faces.Group</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Allow the user to choose a "true" or "false" value, presented as a
checkbox.
<p>
Renders as an HTML input tag with its type set to "checkbox", and
its name attribute set to the id. The "checked" attribute is rendered
if the value of this component is true.
</p>]]></description>
    <component-type>javax.faces.HtmlSelectBooleanCheckbox</component-type>
    <component-class>javax.faces.component.html.HtmlSelectBooleanCheckbox</component-class>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectBoolean</component-family>
      <renderer-type>javax.faces.Checkbox</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Allow the user to select zero or more items from a set of available options.
<p> 
This is presented as a table with one cell per available option; each cell contains a
checkbox and the option's label. The "layout" attribute determines whether the checkboxes
are laid out horizontally or vertically.
</p>
<p>
The set of available options is defined by adding child
f:selectItem or f:selectItems components to this component.
</p>
<p>
The value attribute must be a value-binding expression to a
property of type List, Object array or primitive array. That
"collection" is expected to contain objects of the same type as
SelectItem.getValue() returns for the child SelectItem objects.
On rendering, any child whose value is in the list will be
selected initially. During the update phase, the property setter
is called to replace the original collection with a completely
new collection object of the appropriate type. The new collection
object contains the value of each child SelectItem object that
is currently selected.
</p>]]></description>
    <component-type>javax.faces.HtmlSelectManyCheckbox</component-type>
    <component-class>javax.faces.component.html.HtmlSelectManyCheckbox</component-class>
    <property>
         <description><![CDATA[HTML: Specifies the width of the border of this element, in pixels.  Deprecated in HTML 4.01.]]></description>
         <property-name>border</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[Controls the layout direction of the child elements.  Values include:  
lineDirection (vertical) and pageDirection (horzontal).]]></description>
         <property-name>layout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS class to be applied to selected items]]></description>
         <property-name>selectedClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[CSS class to be applied to unselected items]]></description>
         <property-name>unselectedClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>disabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>enabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <property-name>hideNoSelectionOption</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>collectionType</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectMany</component-family>
      <renderer-type>javax.faces.Checkbox</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Allow the user to select zero or more items from a set of
available options. This is presented as a listbox which allows
multiple rows in the list to be selected simultaneously.
<p>
The set of available options is defined by adding child
f:selectItem or f:selectItems components to this component.
</p>
<p>
The list is rendered as an HTML select element. The "multiple"
attribute is set on the element and the size attribute is set to
the provided value, defaulting to the number of items in the list
if no value is provided. If the size is set to 1, then a
"drop-down" list (aka "combo-box") is presented, though if this is
the intention then a selectManyMenu should be used instead.
</p>
<p>
The value attribute must be a value-binding expression to a
property of type List, Object array or primitive array. That
"collection" is expected to contain objects of the same type as
SelectItem.getValue() returns for the child SelectItem objects.
On rendering, any child whose value is in the list will be
selected initially. During the update phase, the property is set
to contain a "collection" of values for those child SelectItem
objects that are currently selected.
</p>]]></description>
    <component-type>javax.faces.HtmlSelectManyListbox</component-type>
    <component-class>javax.faces.component.html.HtmlSelectManyListbox</component-class>
    <property>
         <description><![CDATA[see JSF Spec.]]></description>
         <property-name>size</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>disabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>enabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <property-name>hideNoSelectionOption</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>collectionType</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectMany</component-family>
      <renderer-type>javax.faces.Listbox</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Allow the user to select zero or more items from a set of available
options. This is presented as a drop-down "combo-box" which allows
multiple rows in the list to be selected simultaneously.
<p>
The set of available options is defined by adding child
f:selectItem or f:selectItems components to this component.
</p>
<p>
Renders as an HTML select element, with the choices made up of
child f:selectItem or f:selectItems elements. The multiple
attribute is set and the size attribute is set to 1.
</p>
<p>
The value attribute must be a value-binding expression to a
property of type List, Object array or primitive array. That
"collection" is expected to contain objects of the same type as
SelectItem.getValue() returns for the child SelectItem objects.
On rendering, any child whose value is in the list will be
selected initially. During the update phase, the property is set
to contain a "collection" of values for those child SelectItem
objects that are currently selected.
</p>]]></description>
    <component-type>javax.faces.HtmlSelectManyMenu</component-type>
    <component-class>javax.faces.component.html.HtmlSelectManyMenu</component-class>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>disabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>enabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <property-name>hideNoSelectionOption</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>collectionType</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectMany</component-family>
      <renderer-type>javax.faces.Menu</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Allow the user to choose one option from a set of options.
<p>
Rendered as a listbox with the MULTIPLE attribute set to false.
</p>
<p>
The available choices are defined via child f:selectItem or
f:selectItems elements. The size of the listbox defaults to the
number of available choices; if size is explicitly set to a
smaller value, then scrollbars will be rendered. If size is set
to 1 then a "drop-down menu" (aka "combo-box") is rendered, though
if this is the intent then selectOneMenu should be used instead.
</p>
<p>
The value attribute of this component is read to determine
which of the available options is initially selected; its value
should match the "value" property of one of the child SelectItem
objects.
</p>
<p>
On submit of the enclosing form, the value attribute's bound
property is updated to contain the "value" property from the
chosen SelectItem.
</p>]]></description>
    <component-type>javax.faces.HtmlSelectOneListbox</component-type>
    <component-class>javax.faces.component.html.HtmlSelectOneListbox</component-class>
    <property>
         <description><![CDATA[see JSF Spec.]]></description>
         <property-name>size</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>disabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>enabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <property-name>hideNoSelectionOption</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectOne</component-family>
      <renderer-type>javax.faces.Listbox</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Allow the user to choose one option from a set of options.
<p>
Renders a drop-down menu (aka "combo-box") containing a set of
choices, of which only one can be chosen at a time. The available
choices are defined via child f:selectItem or f:selectItems
elements.
</p>
<p>
The value attribute of this component is read to determine
which of the available options is initially selected; its value
should match the "value" property of one of the child SelectItem
objects.
</p>
<p>
On submit of the enclosing form, the value attribute's bound property
is updated to contain the "value" property from the chosen SelectItem.
</p>]]></description>
    <component-type>javax.faces.HtmlSelectOneMenu</component-type>
    <component-class>javax.faces.component.html.HtmlSelectOneMenu</component-class>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>disabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>enabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <property-name>hideNoSelectionOption</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectOne</component-family>
      <renderer-type>javax.faces.Menu</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Allow the user to choose one option from a set of options.
<p>
Renders as an HTML table element, containing an input element for
each child f:selectItem or f:selectItems elements.  The input
elements are rendered as type radio.
</p>
<p>
The value attribute of this component is read to determine
which of the available options is initially selected; its value should
match the "value" property of one of the child SelectItem objects.
</p>
<p>
On submit of the enclosing form, the value attribute's bound property
is updated to contain the "value" property from the chosen SelectItem.
</p>]]></description>
    <component-type>javax.faces.HtmlSelectOneRadio</component-type>
    <component-class>javax.faces.component.html.HtmlSelectOneRadio</component-class>
    <property>
         <description><![CDATA[Width in pixels of the border to be drawn around the table containing the options list.]]></description>
         <property-name>border</property-name>
         <property-class>int</property-class>
         <default-value>Integer.MIN_VALUE</default-value>
    </property>
    <property>
         <description><![CDATA[Orientation of the options list. Valid values are 
"pageDirection" for a vertical layout, or "lineDirection" for
horizontal. The default value is "lineDirection".]]></description>
         <property-name>layout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A display name for this component.]]></description>
         <property-name>label</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: CSS styling instructions.]]></description>
         <property-name>style</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class for this element.  Corresponds to the HTML 'class' attribute.]]></description>
         <property-name>styleClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies the position of this element within the tab order of the document.]]></description>
         <property-name>tabindex</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element loses focus.]]></description>
         <property-name>onblur</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element receives focus.]]></description>
         <property-name>onfocus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>disabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[The CSS class assigned to the label element for enabled choices.]]></description>
         <property-name>enabledClass</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Sets the access key for this element.]]></description>
         <property-name>accesskey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is clicked.]]></description>
         <property-name>onclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the element is double-clicked.]]></description>
         <property-name>ondblclick</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed down over this element.]]></description>
         <property-name>onkeydown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is pressed over this element.]]></description>
         <property-name>onkeypress</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when a key is released over this element.]]></description>
         <property-name>onkeyup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is pressed over this element.]]></description>
         <property-name>onmousedown</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved while it is in this element.]]></description>
         <property-name>onmousemove</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moves out of this element.]]></description>
         <property-name>onmouseout</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is moved into this element.]]></description>
         <property-name>onmouseover</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Script to be invoked when the pointing device is released over this element.]]></description>
         <property-name>onmouseup</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is modified.]]></description>
         <property-name>onchange</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: Specifies a script to be invoked when the element is selected.]]></description>
         <property-name>onselect</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).]]></description>
         <property-name>dir</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: The base language of this document.]]></description>
         <property-name>lang</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: An advisory title for this element.  Often used by the user agent as a tooltip.]]></description>
         <property-name>title</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[HTML: When true, this element cannot receive focus.]]></description>
         <property-name>disabled</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[HTML: When true, indicates that this component cannot be modified by the user.
The element may receive focus unless it has also been disabled.]]></description>
         <property-name>readonly</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <property-name>hideNoSelectionOption</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that identifies the phase during which action events should fire.
<p>
During normal event processing, action methods and action listener methods are fired during the
"invoke application" phase of request processing. If this attribute is set to "true", these methods are fired
instead at the end of the "apply request values" phase.
</p>]]></description>
         <property-name>immediate</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether an input value is required.
<p>
If this value is true and no input value is provided by a postback operation, then the "requiredMessage" text is
registered as a FacesMessage for the request, and validation fails.
</p>
<p>
Default value: false.
</p>]]></description>
         <property-name>required</property-name>
         <property-class>boolean</property-class>
         <default-value>false</default-value>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when conversion of a submitted value to the target type
fails.
<p>
</p>]]></description>
         <property-name>converterMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[Text to be displayed to the user as an error message when this component is marked as "required" but no input
data is present during a postback (ie the user left the required field blank).]]></description>
         <property-name>requiredMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method-binding EL expression which is invoked during the validation phase for this component.
<p>
The invoked method is expected to check the submitted value for this component, and if not acceptable then report
a validation error for the component.
</p>
<p>
The method is expected to have the prototype
</p>
<code>public void aMethod(FacesContext, UIComponent,Object)</code>]]></description>
         <property-name>validator</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Text which will be shown if validation fails.]]></description>
         <property-name>validatorMessage</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A method which is invoked during postback processing for the current view if the submitted value for this
component is not equal to the value which the "value" expression for this component returns.
<p>
The phase in which this method is invoked can be controlled via the immediate attribute.
</p>]]></description>
         <property-name>valueChangeListener</property-name>
         <property-class>javax.faces.el.MethodBinding</property-class>
    </property>
    <property>
         <description><![CDATA[Gets The initial value of this component.]]></description>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[An expression that specifies the Converter for this component.
<p>
The value can either be a static value (ID) or an EL expression. When a static id is
specified, an instance of the converter type registered with that id is used. When this
is an EL expression, the result of evaluating the expression must be an object that
implements the Converter interface.
</p>]]></description>
         <property-name>converter</property-name>
         <property-class>javax.faces.convert.Converter</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.SelectOne</component-family>
      <renderer-type>javax.faces.Radio</renderer-type>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[Dummy class that is used as a container for resources 
(see JSF 2.0 rev A UIViewRoot.addComponentResource javadoc)]]></description>
    <component-type>javax.faces.ComponentResourceContainer</component-type>
    <component-class>org.apache.myfaces.component.ComponentResourceContainer</component-class>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>javax.faces.Panel</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[TODO: PartialStateSaving and pluginize this component!]]></description>
    <component-type>facelets.ui.Repeat</component-type>
    <component-class>org.apache.myfaces.view.facelets.component.UIRepeat</component-class>
    <property>
         <property-name>offset</property-name>
         <property-class>int</property-class>
    </property>
    <property>
         <property-name>size</property-name>
         <property-class>int</property-class>
    </property>
    <property>
         <property-name>step</property-name>
         <property-class>int</property-class>
    </property>
    <property>
         <property-name>var</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>varStatus</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>value</property-name>
         <property-class>java.lang.Object</property-class>
    </property>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>facelets</component-family>
      <renderer-type>facelets.ui.Repeat</renderer-type>
    </component-extension>
  </component>    
  <component>
    <component-type>facelets.ui.ComponentRef</component-type>
    <component-class>org.apache.myfaces.view.facelets.tag.ui.ComponentRef</component-class>
    <property>
         <description><![CDATA[Get a string which uniquely identifies this UIComponent within the scope of the nearest ancestor NamingContainer
component. The id is not necessarily unique across all components in the current view.]]></description>
         <property-name>id</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <description><![CDATA[Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.]]></description>
         <property-name>binding</property-name>
         <property-class>javax.faces.component.UIComponent</property-class>
    </property>
    <component-extension>
      <component-family>facelets</component-family>
    </component-extension>
  </component>    
  <component>
    <description><![CDATA[The debug tag will capture the component tree and variables when it is encoded, 
storing the data for retrieval later. You may launch the debug window at any time 
from your browser by pressing 'CTRL' + 'SHIFT' + 'D' (by default).

The debug tag doesn't need to be used with the facelet.DEVELOPMENT parameter.
The best place to put this tag is in your site's main template where it can be 
enabled/disabled across your whole application. 

If your application uses multiple windows, you might want to assign different 
hot keys to each one.]]></description>
    <component-type>facelets.ui.Debug</component-type>
    <component-class>org.apache.myfaces.view.facelets.tag.ui.UIDebug</component-class>
    <property>
         <description><![CDATA[The hot key to use in combination with 'CTRL' + 'SHIFT' to launch the debug window. 
By default, when the debug tag is used, you may launch the debug window with 
'CTRL' + 'SHIFT' + 'D'. This value cannot be an EL expression.]]></description>
         <property-name>hotkey</property-name>
         <property-class>java.lang.String</property-class>
    </property>
    <property>
         <description><![CDATA[A boolean value that indicates whether this component should be rendered. Default value: true.]]></description>
         <property-name>rendered</property-name>
         <property-class>boolean</property-class>
    </property>
    <property>
         <property-name>transient</property-name>
         <property-class>boolean</property-class>
    </property>
    <component-extension>
      <component-family>facelets</component-family>
    </component-extension>
  </component>    
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.BigDecimal</converter-id>
    <converter-class>javax.faces.convert.BigDecimalConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.BigInteger</converter-id>
    <converter-class>javax.faces.convert.BigIntegerConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Boolean</converter-id>
    <converter-class>javax.faces.convert.BooleanConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Byte</converter-id>
    <converter-class>javax.faces.convert.ByteConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Character</converter-id>
    <converter-class>javax.faces.convert.CharacterConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[This tag associates a date time converter with the nearest parent UIComponent.

Unless otherwise specified, all attributes accept static values or EL expressions.

see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.DateTime</converter-id>
    <converter-class>javax.faces.convert.DateTimeConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Double</converter-id>
    <converter-class>javax.faces.convert.DoubleConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/j2ee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Enum</converter-id>
    <converter-class>javax.faces.convert.EnumConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Float</converter-id>
    <converter-class>javax.faces.convert.FloatConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Integer</converter-id>
    <converter-class>javax.faces.convert.IntegerConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Long</converter-id>
    <converter-class>javax.faces.convert.LongConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[This tag creates a number formatting converter and associates it
with the nearest parent UIComponent.

Unless otherwise specified, all attributes accept static values or EL expressions.

see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Number</converter-id>
    <converter-class>javax.faces.convert.NumberConverter</converter-class>
  </converter>
  <converter>
    <description><![CDATA[see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <converter-id>javax.faces.Short</converter-id>
    <converter-class>javax.faces.convert.ShortConverter</converter-class>
  </converter>
  <validator>
    <description><![CDATA[<p>
<strong>BeanValidator</strong> is a {@link javax.faces.validator.Validator}
that doesn't do any validation itself, but delegates validation logic to
Bean Validation.
</p>]]></description>
    <validator-id>javax.faces.Bean</validator-id>
    <validator-class>javax.faces.validator.BeanValidator</validator-class>
  </validator>
  <validator>
    <description><![CDATA[Creates a validator and associateds it with the nearest parent
UIComponent.  When invoked, the validator ensures that values are
valid doubles that lie within the minimum and maximum values specified.

Commonly associated with a h:inputText entity.

Unless otherwise specified, all attributes accept static values or EL expressions.

see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <validator-id>javax.faces.DoubleRange</validator-id>
    <validator-class>javax.faces.validator.DoubleRangeValidator</validator-class>
  </validator>
  <validator>
    <description><![CDATA[Creates a validator and associateds it with the nearest parent
UIComponent.  When invoked, the validator ensures that values are
valid strings with a length that lies within the minimum and maximum
values specified.

Commonly associated with a h:inputText entity.

Unless otherwise specified, all attributes accept static values or EL expressions.

see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <validator-id>javax.faces.Length</validator-id>
    <validator-class>javax.faces.validator.LengthValidator</validator-class>
  </validator>
  <validator>
    <description><![CDATA[Creates a validator and associateds it with the nearest parent
UIComponent.  When invoked, the validator ensures that values
are valid longs that lie within the minimum and maximum values specified.

Commonly associated with a h:inputText entity.

Unless otherwise specified, all attributes accept static values or EL expressions.

see Javadoc of <a href="http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html">JSF Specification</a>]]></description>
    <validator-id>javax.faces.LongRange</validator-id>
    <validator-class>javax.faces.validator.LongRangeValidator</validator-class>
  </validator>
  <validator>
    <description><![CDATA[<p>
  <strong>RegexValidator</strong> is a {@link javax.faces.validator.Validator}
  that checks the value of the corresponding component against specified
  pattern using Java regular expression syntax.

  The regular expression syntax accepted by the RegexValidator class is
  same as mentioned in class {@link java.util.regex.Pattern} in package
  <code>java.util.regex</code>.
</p>

<p>
  The following algorithm is implemented:
</p>

<ul>
  <li>If the passed value is <code>null</code>, exit immediately.</li>
  <li>
    If the passed value is not a String, exit with a {@link #NOT_MATCHED_MESSAGE_ID}
    error message.
  </li>
  <li>
    If no pattern has been set, or pattern resolves to <code>null</code> or an
    empty String, throw a {@link javax.faces.validator.ValidatorException}
    with a {@link #PATTERN_NOT_SET_MESSAGE_ID} message.
  </li>
  <li>
    If pattern is not a valid regular expression, according to the rules as defined
    in class {@link java.util.regex.Pattern}, throw a {@link ValidatorException}
    with a (@link #MATCH_EXCEPTION_MESSAGE_ID} message.
  </li>
  <li>
    If a <code>pattern</code> property has been configured on this
    {@link javax.faces.validator.Validator}, check the passed value against this pattern.
    If value does not match pattern throw a {@link ValidatorException}
    containing a {@link #NOT_MATCHED_MESSAGE_ID} message.
  </li>
</ul>]]></description>
    <validator-id>javax.faces.RegularExpression</validator-id>
    <validator-class>javax.faces.validator.RegexValidator</validator-class>
  </validator>
  <validator>
    <description><![CDATA[Check if a value is empty, in the same way as set UIInput required 
property to true (including all rules related to this property).]]></description>
    <validator-id>javax.faces.Required</validator-id>
    <validator-class>javax.faces.validator.RequiredValidator</validator-class>
  </validator>
  <render-kit>
    <render-kit-id>HTML_BASIC</render-kit-id>
    <render-kit-class>org.apache.myfaces.renderkit.html.HtmlRenderKitImpl</render-kit-class>
      <renderer>
        <component-family>facelets</component-family>
        <renderer-type>facelets.ui.Repeat</renderer-type>
        <renderer-class>org.apache.myfaces.view.facelets.component.RepeatRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Command</component-family>
        <renderer-type>javax.faces.Button</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlButtonRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Command</component-family>
        <renderer-type>javax.faces.Link</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlLinkRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Data</component-family>
        <renderer-type>javax.faces.Table</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlTableRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Form</component-family>
        <renderer-type>javax.faces.Form</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlFormRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Graphic</component-family>
        <renderer-type>javax.faces.Image</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlImageRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Input</component-family>
        <renderer-type>javax.faces.Hidden</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlHiddenRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Input</component-family>
        <renderer-type>javax.faces.Secret</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlSecretRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Input</component-family>
        <renderer-type>javax.faces.Text</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlTextRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Input</component-family>
        <renderer-type>javax.faces.Textarea</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlTextareaRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Messages</component-family>
        <renderer-type>javax.faces.Messages</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlMessagesRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Message</component-family>
        <renderer-type>javax.faces.Message</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlMessageRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.NamingContainer</component-family>
        <renderer-type>javax.faces.Composite</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlCompositeComponentRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.OutcomeTarget</component-family>
        <renderer-type>javax.faces.Button</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlOutcomeTargetButtonRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.OutcomeTarget</component-family>
        <renderer-type>javax.faces.Link</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlLinkRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.Body</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlBodyRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.CompositeFacet</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlCompositeFacetRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.Format</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlFormatRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.Head</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlHeadRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.Label</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlLabelRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.Link</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlLinkRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.Text</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlTextRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.resource.Script</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlScriptRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.resource.Stylesheet</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlStylesheetRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Panel</component-family>
        <renderer-type>javax.faces.Grid</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlGridRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.Panel</component-family>
        <renderer-type>javax.faces.Group</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlGroupRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.SelectBoolean</component-family>
        <renderer-type>javax.faces.Checkbox</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlCheckboxRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.SelectMany</component-family>
        <renderer-type>javax.faces.Checkbox</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlCheckboxRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.SelectMany</component-family>
        <renderer-type>javax.faces.Listbox</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlListboxRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.SelectMany</component-family>
        <renderer-type>javax.faces.Menu</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlMenuRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.SelectOne</component-family>
        <renderer-type>javax.faces.Listbox</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlListboxRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.SelectOne</component-family>
        <renderer-type>javax.faces.Menu</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlMenuRenderer</renderer-class>
      </renderer>
      <renderer>
        <component-family>javax.faces.SelectOne</component-family>
        <renderer-type>javax.faces.Radio</renderer-type>
        <renderer-class>org.apache.myfaces.renderkit.html.HtmlRadioRenderer</renderer-class>
      </renderer>
    <client-behavior-renderer>
        <client-behavior-renderer-type>javax.faces.behavior.Ajax</client-behavior-renderer-type>
        <client-behavior-renderer-class>org.apache.myfaces.renderkit.html.HtmlAjaxBehaviorRenderer</client-behavior-renderer-class>
    </client-behavior-renderer>
  </render-kit>
</faces-config>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy