TRINIDAD-2540 - Align Trinidad 2.1.x so it can be editable using Netbeans 8 (redirect *.taglib.xml to src/main/resources, so it can be detected)
diff --git a/trinidad-impl/pom.xml b/trinidad-impl/pom.xml
index 0a0a950..c037fc7 100644
--- a/trinidad-impl/pom.xml
+++ b/trinidad-impl/pom.xml
@@ -371,7 +371,6 @@
             <goals>
               <goal>generate-faces-config</goal>
               <goal>generate-jsp-taglibs</goal>
-              <goal>generate-facelets-taglibs</goal>
             </goals>
             <configuration>
               <generatedSourceDirectory>${project.build.directory}/generated-sources/maven-faces-plugin</generatedSourceDirectory>
@@ -388,6 +387,15 @@
               <generatedResourcesDirectory>${project.build.directory}/generated-resources/maven-faces-plugin</generatedResourcesDirectory>
             </configuration>
           </execution>
+          <execution>
+            <id>generate-facelets-taglibs</id>
+            <goals>
+              <goal>generate-facelets-taglibs</goal>
+            </goals>
+            <configuration>
+              <generatedResourcesDirectory>src/main/resources</generatedResourcesDirectory>
+            </configuration>
+          </execution>
         </executions>
       </plugin>
 
diff --git a/trinidad-impl/src/main/resources/META-INF/tr.taglib.xml b/trinidad-impl/src/main/resources/META-INF/tr.taglib.xml
new file mode 100644
index 0000000..8596720
--- /dev/null
+++ b/trinidad-impl/src/main/resources/META-INF/tr.taglib.xml
@@ -0,0 +1,16421 @@
+<?xml version="1.0" encoding="utf-8"?><facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd" version="2.0">
+  
+  <namespace>http://myfaces.apache.org/trinidad</namespace>
+
+  <tag>
+    <description>
+      The setActionListener tag provides a declarative syntax for assigning values before an action fires
+    </description>
+    <tag-name>setActionListener</tag-name>
+    <handler-class>org.apache.myfaces.trinidadinternal.facelets.SetActionListenerTag</handler-class>
+    <attribute>
+      <description>
+        the target for the value;  must be an EL expression
+      </description>
+    <name>to</name>
+    <required>true</required>
+    </attribute>
+    <attribute>
+      <description>
+        the source of the value;  can be an EL expression or a constant value
+      </description>
+      <name>from</name>
+      <required>true</required>
+    </attribute>
+  </tag>
+  
+  <tag>
+    <description>
+      The resetActionListener tag provides a declarative syntax for resetting values before an action fires
+    </description>
+    <tag-name>resetActionListener</tag-name>
+    <handler-class>org.apache.myfaces.trinidadinternal.facelets.ResetActionListenerTag</handler-class>
+  </tag>
+  
+  <tag>
+    <description>
+      The returnActionListener tag is a declarative way to allow an action source to return 
+      a value from a dialog or process.
+    </description>
+    <tag-name>returnActionListener</tag-name>
+    <handler-class>org.apache.myfaces.trinidadinternal.facelets.ReturnActionListenerTag</handler-class>
+    <attribute>
+      <description>
+        The value to return as the dialog/process result.
+        This can be an EL expression or a constant value.
+      </description>
+      <name>value</name>
+    </attribute>
+  </tag>
+
+  <tag>
+    <description>
+      The fileDownloadActionListener tag provides a declarative syntax for downloading files to a user from a command component.
+    </description>
+    <tag-name>fileDownloadActionListener</tag-name>
+    <handler-class>org.apache.myfaces.trinidadinternal.facelets.FileDownloadActionListenerTag</handler-class>
+    <attribute>
+      <description>
+        the content or mime type of the file - e.g., text/html or application/pdf
+      </description>
+      <name>contentType</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>
+        the desired or proposed filename.  If set, the user will typically be presented with a "Save File" dialog, though this is ultimately at the descretion of the user agent.
+      </description>
+      <name>filename</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>
+        an EL binding to the method that will deliver the file contents.  The method must take two parameters, a FacesContext and an OutputStream.
+      </description>
+      <name>method</name>
+      <required>true</required>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, java.io.OutputStream)</method-signature>
+    </attribute>
+  </tag>
+
+  <tag>
+    <description>A breadCrumbs component is used in hierarchical
+          site layouts to indicate the path back to the root page of the
+          hierarchy with links.</description>
+    <tag-name>breadCrumbs</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreBreadCrumbs</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.BreadCrumbs</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether to put links on the same line or indented and
+            on new lines.</description>
+      <name>orientation</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this 
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:&lt;ul&gt;&lt;li&gt;"model" - returns the CollectionModel for this component&lt;/li&gt;&lt;li&gt;"index" - returns the zero based row index&lt;/li&gt;&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the hierarchy of navigation data - must be of type 
+            org.apache.myfaces.trinidad.model.MenuModel</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The Trinidad Chart is used to diplay data in a chart format.</description>
+    <tag-name>chart</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreChart</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Chart</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>Specifies URI for the template document from which the chart elements are cloned.
+        If this attribute is null, the chart component uses a default template. The default template is chosen based
+        on whether the useGradient attribute is true or false.
+        The template document is useful for changing the Look and Feel of the chart.
+        Some examples include:1)A developer may want to skin the chart to match its corporate Look and Feel.
+        2)A developer may want to put water marks/background images inside the chart.
+        3)A developer may want to change the template for the gauges used in the gauge charts.
+        4)A developer may want to turn off gradients and instead use filters to set some interesting effects on the chart elements.</description>
+      <name>templateSource</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies if tooltips are displayed or not.</description>
+      <name>tooltipsVisible</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>The maximum precision of the numbers displayed on the yAxis(xAxis for horizontal charts).
+      The default is 0.</description>
+      <name>maxPrecision</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>This attribute controls the number of horizontal major grid lines displayed in the chart.
+      For horizontal charts(horizontalBar, stackedHorizontalBar) this attribute controls the horizontal major grid lines.
+      The default is 3.</description>
+      <name>YMajorGridLineCount</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>The type of chart. Possible Values are: verticalBar horizontalBar stackedVerticalBar stackedHorizontalBar pie area stackedArea line barLine XYLine scatterPlot radar radarArea funnel circularGauge semiCircularGauge.</description>
+      <name>type</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies if gradients are used to display chart elements.
+      By default the chart elements use gradients.</description>
+      <name>gradientsUsed</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>This attribute controls the number of minor grid lines displayed within a major grid section.
+      The default value is -1, which means it varies per chart type. Currently it is used only for gauge charts
+      with a default of 3.</description>
+      <name>YMinorGridLineCount</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>Specified the location of the legend. The legend can be turned off by setting this attribute to none.
+      Otherwise it can be drawn at top, start, end or bottom.</description>
+      <name>legendPosition</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the data model being used by this component.The specific model class must be derived from 
+        &lt;code&gt;org.apache.myfaces.trinidad.model.ChartModel&lt;/code&gt;. 
+        The derived class must override the abstract methods to provide the required values for chart display.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>This attribute controls the number of vertical major grid lines displayed in the chart.
+      The default value is -1, which implies that the vertical major grid lines are controlled by the groupLabels
+      in the chart model. This parameter along with the groupLabels provide flexibility in labeling the
+      groups. For e.g. one can display a vertical bar chart with 2 years data. Only quarters may be labeled and XMajorGridLineCount can
+      be 1 for splitting the data into two sections.</description>
+      <name>XMajorGridLineCount</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>The duration of the animation for the chart components in milliseconds.
+      Animation can be turned off if the animationDuration is set to 0. The default value is 1000ms.</description>
+      <name>animationDuration</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a drill down listener that
+         will be called when the user drills down into the chart data.The method must take a parameter of type &lt;code&gt;org.apache.myfaces.trinidad.event.ChartDrillDownEvent&lt;/code&gt;.</description>
+      <name>chartDrillDownListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.ChartDrillDownEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>Specifies if the chart is drawn with a perspective (2.5D).
+      By default the chart is draw with a perspective.</description>
+      <name>perspective</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The chooseColor control creates a palette for picking colors.</description>
+    <tag-name>chooseColor</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreChooseColor</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Color</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the list of colors for the component</description>
+      <name>colorData</name>
+      <type>java.util.List</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the width of the standard palette in cells</description>
+      <name>width</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the list of custom colors for the component</description>
+      <name>customColorData</name>
+      <type>java.util.List</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The chooseDate component is used in conjunction with a
+          selectInputDate to allow the user to quickly select a date value without
+          having to navigate to a secondary window.</description>
+    <tag-name>chooseDate</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreChooseDate</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Date</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The minimum value allowed for the Date value.
+When set to a fixed value on a tag, this will be parsed as an ISO 8601 date.
+ISO 8601 dates are of the form "yyyy-MM-dd"
+(for example: 2002-02-15).  All other uses require java.util.Date objects.
+When binding to Date objects, it is advised to create the Date object with zeroed-out
+values for any date-time components that aren't displayed (usually hours, minutes, seconds, milliseconds)
+to allow the largest range of values to be accepted.</description>
+      <name>minValue</name>
+      <type>java.util.Date</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The maximum value allowed for the Date value.
+When set to a fixed value on a tag, this will be parsed as an ISO 8601 date.
+ISO 8601 dates are of the form "yyyy-MM-dd"
+(for example: 2002-02-15).  All other uses require java.util.Date objects.
+When binding to Date objects, it is advised to create the Date object with
+maximum value for any date-time components that aren't displayed (usually hours, minutes, seconds, milliseconds)
+to allow the largest range of values to be accepted.</description>
+      <name>maxValue</name>
+      <type>java.util.Date</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Component that is used as a child of the Table component. The Column
+component defines the header, footer and data for a single column in the
+Table.</description>
+    <tag-name>column</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreColumn</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Column</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>The sorting strength for this column. It controls how this column should
+      be sorted, what level of difference considered significant during comparison. Currently the
+      values supported are: "Primary", "Secondary", "Tertiary" and "Identical". Default value is
+      "Identical".</description>
+      <name>sortStrength</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The default sort order of the column. The legal values are "ascending" or "descending" for ascending sorting or descending sorting on a first click respectively. The default value is "ascending".</description>
+      <name>defaultSortOrder</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;whether or not the column is sortable. A sortable column has a clickable header that (when clicked) sorts the table by that column's property. Note that in order for a column to be sortable, this attribute must be set to "true" and the underlying model must support sorting by this column's property. &lt;p&gt; This column's "sortProperty" attribute must be set if sorting is desired.&lt;/p&gt;&lt;/html&gt;</description>
+      <name>sortable</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the column contents should be allowed to wrap</description>
+      <name>noWrap</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Whether or not this column is a row header column.</description>
+      <name>rowHeader</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>The property that is displayed by this Column. This is the
+            property that the framework might use to (for example) sort
+            the Table's data.</description>
+      <name>sortProperty</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The alignment for this column. The legal values are "start", "end" and "center", for left-justified, right-justified, and center-justified respectively in LTR display. The default value is "start".</description>
+      <name>align</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the preferred width of this column, e.g., "30%", "100px".</description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the children of this column should be rendered on separate rows. Setting this attribute to true will cause each child to render in its own row. Setting this to false will cause all the children to be rendered in one cell, which will rowSpan across the rows of the Columns whose children are rendered on separate rows.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>separateRows</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the column header
+should be allowed to wrap</description>
+      <name>headerNoWrap</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>text to display in the header of the column.  This is a convenience that generates output equivalent to adding a "header" facet containing an outputText.</description>
+      <name>headerText</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The commandButton control creates a button representation of a UIXCommand.</description>
+    <tag-name>commandButton</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreCommandButton</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Button</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an action listener</description>
+      <name>actionListener</name>
+      <method-signature>void myMethod(javax.faces.event.ActionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to this button.
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              &lt;p&gt;
+              If the same access key appears in multiple input fields in the
+              same page of output, the rendering user agent will cycle among
+              the elements accessed by the similar keys. Note that user agents
+              are inconsistent about dealing with two links having same access
+              key, and so the cycling behavior is dependent on what the user agent
+              provides.
+              &lt;/p&gt;&lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+              &lt;/p&gt;&lt;p&gt;
+                The character specified by this attribute
+                &lt;strong&gt;must&lt;/strong&gt; exist in the
+                &lt;code&gt;Text&lt;/code&gt; attribute of this button instance.
+                If it does not, the user will receive no visual indication of
+                the existence of the accessKey.
+                The easiest, and most convenient
+                way to specify both the text and the mnemonic together is
+                to use textAndAccessKey.
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>Height of the window, if this command is used to launch a window.</description>
+      <name>windowHeight</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a reference to an action method sent by the command component,
+              or the static outcome of an action. If the action starts with "dialog:",
+              useWindow attribute must be set to true.</description>
+      <name>action</name>
+      <method-signature>java.lang.String myMethod()</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "text"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "T&amp;amp;amp;ext" will
+              set the text to "Text" and the access key to 'e'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>textAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a return listener.This method
+      is used to process dialog returnEvents which are generated as a result of either
+      calling org.apache.myfaces.trinidad.context.RequestContext.returnFromDialog
+      directly or declaratively through the use of a returnActionListener tag.</description>
+      <name>returnListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.ReturnEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>An URL to an image to use for an icon displayed in the button.</description>
+      <name>icon</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the textual label of the button.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the action should be done through a partial page submit
+            or not.
+            Default is false: no partial page submit.</description>
+      <name>partialSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Width of the window, if this command is used to launch a window.</description>
+      <name>windowWidth</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation - client-side or
+            server-side -
+          will be skipped when
+          events are generated by this component.
+
+          When immediate is true, the command's action and
+          ActionListeners, including the default ActionListener
+          provided by the JavaServer Faces implementation,
+          will be executed during Apply Request Values phase
+          of the request processing lifecycle, rather than
+          waiting until the Invoke Application phase.  Because
+          validation runs during Process Validators (after
+          Apply Request Values, but before Invoke Application),
+          setting immediate to true will skip validation.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE the component will start blocking user input when the
+     action is initiated. The blocking will stop when a response is received
+     from the server.</description>
+      <name>blocking</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>Indicates whether processes launched by this command should be
+        launched in a secondary dialog window. 'useWindow' requires that the "action"
+        attribute start with "dialog:". Set useWindow to 'false' for the outcome of
+        the action to be targeted to the existing window.</description>
+      <name>useWindow</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the button should be disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a launch listener</description>
+      <name>launchListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.LaunchEvent)</method-signature>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The commandLink control creates a link representation of a UIXCommand.</description>
+    <tag-name>commandLink</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreCommandLink</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Link</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an action listener</description>
+      <name>actionListener</name>
+      <method-signature>void myMethod(javax.faces.event.ActionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to this link.
+              For accessibility reasons, this functionality is not
+              supported in screen reader mode.
+              &lt;p&gt;
+              If the same access key appears in multiple input fields in the
+              same page of output, the rendering user agent will cycle among
+              the elements accessed by the similar keys. Note that user agents
+              are inconsistent about dealing with two links having same access
+              key, and so the cycling behavior is dependent on what the user agent
+              provides.
+              &lt;/p&gt;&lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+              &lt;/p&gt;&lt;p&gt;
+                The character specified by this attribute
+                &lt;strong&gt;must&lt;/strong&gt; exist in the
+                &lt;code&gt;Text&lt;/code&gt; attribute of this Link instance.
+                If it does not, the user will receive no visual indication of
+                the existence of the accessKey.
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>Height of the window, if this command is used to launch a window.</description>
+      <name>windowHeight</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a reference to an action method sent by the command component,
+              or the static outcome of an action. If the action starts with "dialog:",
+              useWindow attribute must be set to true.</description>
+      <name>action</name>
+      <method-signature>java.lang.String myMethod()</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "text"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "T&amp;amp;amp;ext" will
+              set the text to "Text" and the access key to 'e'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>textAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a return listener.This method
+      is used to process dialog returnEvents which are generated as a result of either
+      calling org.apache.myfaces.trinidad.context.RequestContext.returnFromDialog
+      directly or declaratively through the use of a returnActionListener tag.</description>
+      <name>returnListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.ReturnEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the textual label of the link.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the action should be done through a partial page submit
+            or not.
+            Default is false: no partial page submit.</description>
+      <name>partialSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Width of the window, if this command is used to launch a window.</description>
+      <name>windowWidth</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation - client-side or
+            server-side -
+          will be skipped when
+          events are generated by this component.
+
+          When immediate is true, the command's action and
+          ActionListeners, including the default ActionListener
+          provided by the JavaServer Faces implementation,
+          will be executed during Apply Request Values phase
+          of the request processing lifecycle, rather than
+          waiting until the Invoke Application phase.  Because
+          validation runs during Process Validators (after
+          Apply Request Values, but before Invoke Application),
+          setting immediate to true will skip validation.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE the component will start blocking user input when the
+     action is initiated. The blocking will stop when a response is received
+     from the server.</description>
+      <name>blocking</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>Indicates whether processes launched by this command should be
+        launched in a secondary dialog window. 'useWindow' requires that the "action"
+        attribute start with "dialog:". Set useWindow to 'false' for the outcome of
+        the action to be targeted to the existing window.</description>
+      <name>useWindow</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the link should be considered disabled.
+              This attribute only has meaning when links are used in certain
+              container types, such as global headers and tab bars.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a launch listener</description>
+      <name>launchListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.LaunchEvent)</method-signature>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The commandNavigationItem control creates a navigation item representation of a UIXCommand.</description>
+    <tag-name>commandNavigationItem</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreCommandNavigationItem</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.NavigationItem</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an action listener</description>
+      <name>actionListener</name>
+      <method-signature>void myMethod(javax.faces.event.ActionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to this item.
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              &lt;p&gt;
+                If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle among
+              the elements accessed by the similar keys.  Note that user agents
+              are inconsistent about dealing with two links having same access
+              key, and so the cycling behavior is dependent on what the user agent
+              provides.
+              &lt;/p&gt;&lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+              &lt;/p&gt;&lt;p&gt;
+                The character specified by this attribute
+                &lt;strong&gt;must&lt;/strong&gt; exist in the
+                &lt;code&gt;text&lt;/code&gt; attribute of this item instance.
+                If it does not, the user will receive no visual indication of
+                the existence of the accessKey.
+                The easiest, and most convenient
+                way to specify both the text and the mnemonic together is
+                to use textAndAccessKey.
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>the target frame for the go component.</description>
+      <name>targetFrame</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Height of the window, if this command is used to launch a window.</description>
+      <name>windowHeight</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a reference to an action method sent by the command component,
+              or the static outcome of an action. If the action starts with "dialog:",
+              useWindow attribute must be set to true.</description>
+      <name>action</name>
+      <method-signature>java.lang.String myMethod()</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "text"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "T&amp;amp;amp;ext" will
+              set the text to "Text" and the access key to 'e'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>textAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the item is in visited state. Depending on
+      the renderer the item may appear in a visited style, if true. This
+      property is currently used only within the a train component.</description>
+      <name>visited</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a return listener.This method
+      is used to process dialog returnEvents which are generated as a result of either
+      calling org.apache.myfaces.trinidad.context.RequestContext.returnFromDialog
+      directly or declaratively through the use of a returnActionListener tag.</description>
+      <name>returnListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.ReturnEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether the item is selected.</description>
+      <name>selected</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a URI specifying the location of a target image.</description>
+      <name>icon</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the text of the item.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the action should be done through a partial page submit
+            or not.
+            Default is false: no partial page submit.</description>
+      <name>partialSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Width of the window, if this command is used to launch a window.</description>
+      <name>windowWidth</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>The URI this component references when activated.  This is an alternative to using an action.</description>
+      <name>destination</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation - client-side or
+            server-side -
+          will be skipped when
+          events are generated by this component.
+
+          When immediate is true, the command's action and
+          ActionListeners, including the default ActionListener
+          provided by the JavaServer Faces implementation,
+          will be executed during Apply Request Values phase
+          of the request processing lifecycle, rather than
+          waiting until the Invoke Application phase.  Because
+          validation runs during Process Validators (after
+          Apply Request Values, but before Invoke Application),
+          setting immediate to true will skip validation.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Indicates whether processes launched by this command should be
+        launched in a secondary dialog window. 'useWindow' requires that the "action"
+        attribute start with "dialog:". Set useWindow to 'false' for the outcome of
+        the action to be targeted to the existing window.</description>
+      <name>useWindow</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>If value is "true", the component becomes non-interactive.  Otherwise,the default value is "false" and component assumes its expected behavior.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a launch listener</description>
+      <name>launchListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.LaunchEvent)</method-signature>
+    </attribute>
+  </tag>
+  <tag>
+    <description>&lt;html&gt;
+          The document tag creates each of the standard root elements of an HTML page:  &amp;lt;html&amp;gt;, &amp;lt;body&amp;gt;, and &amp;lt;head&amp;gt;.&lt;/html&gt;</description>
+    <tag-name>document</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreDocument</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Document</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the id of the component to which you want the
+        focus to be when the full page renders. The accessibility-mode
+        must be set to "inaccessible" for this feature to be on.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>initialFocusId</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onunload Javascript handler.</description>
+      <name>onunload</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specify the state saving behavior for this page. client=force to be (full) client;
+             server=force to be server-side; default=follows the settings of the web.xml</description>
+      <name>stateSaving</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Set if the page should render in default standards mode, quirks mode, or strict mode.  Behavior of the modes are:&lt;ul&gt;
+&lt;li&gt;"default": renders as transitional doctypes for both XHTML and HTML,
+with &lt;a href="http://developer.mozilla.org/en/docs/Gecko's_%22Almost_Standards%22_Mode"&gt;"almost standards"&lt;/a&gt; rendering mode&lt;/li&gt;
+&lt;li&gt;"strict": renders as a strict doctype for both XHTML and HTML, also
+in standards rendering mode&lt;/li&gt;
+&lt;li&gt;"quirks": renders HTML pages in quirks mode, and XHTML with
+a transitional doctype, but standards mode  (there is no quirks mode for
+XHTML).&lt;/li&gt;&lt;/ul&gt;</description>
+      <name>mode</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The title of the document.  (This title doesn't have to match the
+            title on any contained panelPage.)</description>
+      <name>title</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onload Javascript handler.</description>
+      <name>onload</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>&lt;html&gt;
+          The form tag creates an HTML &amp;lt;form&amp;gt; element.&lt;/html&gt;</description>
+    <tag-name>form</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreForm</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Form</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether previous values of text fields in the form
+          should be remembered and offered for auto completion.</description>
+      <name>autoComplete</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the target frame for the form</description>
+      <name>targetFrame</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The id attribute of the command button whose action would be invoked by default for form submit on hitting enter on any of the input fields of the form.</description>
+      <name>defaultCommand</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Javascript code to be called when the form is submitted.</description>
+      <name>onsubmit</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the form supports file upload.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>usesUpload</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The goButton creates a push button that navigates directly
+to another location instead of delivering an action.</description>
+    <tag-name>goButton</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreGoButton</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Button</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to this component.
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              &lt;p&gt;
+              If the same access key appears in multiple input fields in the
+              same page of output, the rendering user agent will cycle among
+              the elements accessed by the similar keys. Note that user agents
+              are inconsistent about dealing with two links having same access
+              key, and so the cycling behavior is dependent on what the user agent
+              provides.
+              &lt;/p&gt;&lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+              &lt;/p&gt;&lt;p&gt;
+                The character specified by this attribute
+                &lt;strong&gt;must&lt;/strong&gt; exist in the
+                &lt;code&gt;Text&lt;/code&gt; attribute of this go component instance.
+                If it does not, the user will receive no visual indication of
+                the existence of the accessKey.
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>the target frame for the go component.</description>
+      <name>targetFrame</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "text"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "T&amp;amp;amp;ext" will
+              set the text to "Text" and the access key to 'e'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>textAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>An URL to an image to use for an icon displayed in the button.</description>
+      <name>icon</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the textual label of the go component.   Go components will
+             also render children elements (including text nodes), though not
+             all subclasses of the go component will necessarily support
+             children.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the URI this go component references</description>
+      <name>destination</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the go component should be considered disabled.
+              This attribute only has meaning when go components are used in certain
+              container types, such as global headers and tab bars.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The goLink tag is an HTML link.</description>
+    <tag-name>goLink</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreGoLink</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Link</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to this component.
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              &lt;p&gt;
+              If the same access key appears in multiple input fields in the
+              same page of output, the rendering user agent will cycle among
+              the elements accessed by the similar keys. Note that user agents
+              are inconsistent about dealing with two links having same access
+              key, and so the cycling behavior is dependent on what the user agent
+              provides.
+              &lt;/p&gt;&lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+              &lt;/p&gt;&lt;p&gt;
+                The character specified by this attribute
+                &lt;strong&gt;must&lt;/strong&gt; exist in the
+                &lt;code&gt;Text&lt;/code&gt; attribute of this go component instance.
+                If it does not, the user will receive no visual indication of
+                the existence of the accessKey.
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>the target frame for the go component.</description>
+      <name>targetFrame</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "text"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "T&amp;amp;amp;ext" will
+              set the text to "Text" and the access key to 'e'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>textAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the textual label of the go component.   Go components will
+             also render children elements (including text nodes), though not
+             all subclasses of the go component will necessarily support
+             children.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the URI this go component references</description>
+      <name>destination</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the go component should be considered disabled.
+              This attribute only has meaning when go components are used in certain
+              container types, such as global headers and tab bars.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The icon component renders a skin specific icon.</description>
+    <tag-name>icon</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreIcon</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Icon</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a  name identifying which icon should be rendered.
+              Valid values depend on the skin-family. Shortcut names
+              exist for ".AFRequiredIcon", ".AFWarningIcon",
+              ".AFInfoIcon", and ".AFErrorIcon". They are "required",
+              "warning", "info", and "error" respectively.
+              See the Apache Trinidad skins documentation for a list of icon names.</description>
+      <name>name</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The image control creates an image tag.</description>
+    <tag-name>image</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreImage</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Image</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>If a server-side image map is desired, specify "server" and place
+              inside a CoreGoLink component.  The acceptable values
+              are "server" or "none"; defaults to "none".</description>
+      <name>imageMapType</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an URL that specifies a link to a long description of the image.
+This description should supplement the short description.</description>
+      <name>longDescURL</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the URI specifying the location of the image resource.</description>
+      <name>source</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The importScript tag supports importing the built-in scripts
+         provided by Apache Trinidad.</description>
+    <tag-name>importScript</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreImportScript</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.ImportScript</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a series of function names</description>
+      <name>names</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The inputColor control creates a text field for entering colors and
+          a button for picking colors from a palette.</description>
+    <tag-name>inputColor</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreInputColor</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Color</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to an action listener</description>
+      <name>actionListener</name>
+      <method-signature>void myMethod(javax.faces.event.ActionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the number of columns to display in the text
+          control. If no value is specified, a default
+          value will be derived from the current converter, if one
+   is attached.</description>
+      <name>columns</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a reference to an action method sent by the commandButton, or the static outcome of an action</description>
+      <name>action</name>
+      <method-signature>java.lang.String myMethod()</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an return listener</description>
+      <name>returnListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.ReturnEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>If true, attempt to use less screen real-estate to display the
+          inputColor.  For example, this
+          might cause the text area not to be rendered, and the color
+          swatch conveys the currently selected color.</description>
+      <name>compact</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>The id of the inline chooseColor component which can be used to
+          update the Color value for this inputColor. Use the same syntax as partialTriggers
+          if the components are separated by Naming Containers.</description>
+      <name>chooseId</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether previous values of text fields in the form
+          should be remembered and offered for auto completion.</description>
+      <name>autoComplete</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The inputDate component creates a text field for entering dates and
+          a button for picking dates from a calendar.</description>
+    <tag-name>inputDate</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreInputDate</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Date</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to an action listener</description>
+      <name>actionListener</name>
+      <method-signature>void myMethod(javax.faces.event.ActionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the number of columns to display in the text
+          control. If no value is specified, a default
+          value will be derived from the current converter, if one
+   is attached.</description>
+      <name>columns</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a reference to an action method sent by the commandButton, or the static outcome of an action</description>
+      <name>action</name>
+      <method-signature>java.lang.String myMethod()</method-signature>
+    </attribute>
+    <attribute>
+      <description>the maximum number of characters that
+          can be entered into the text control. Note that
+          this value is independent of the "columns" displayed.</description>
+      <name>maximumLength</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an return listener</description>
+      <name>returnListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.ReturnEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>The id of the chooseDate component which can be used to
+              pick the Date value for this inputDate. Use the same syntax as partialTriggers
+          if the components are separated by Naming Containers.</description>
+      <name>chooseId</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether previous values of text fields in the form
+          should be remembered and offered for auto completion.</description>
+      <name>autoComplete</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The inputFile component is a component that can
+          be used to upload a file.  It supports displaying a label,
+          text, and messages.</description>
+    <tag-name>inputFile</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreInputFile</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.File</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; For accessibility reasons, this functionality is not supported in screen reader mode. If the same access key appears in multiple locations in the same page of output, the rendering user agent will cycle among the elements accessed by the similar keys. &lt;p&gt; This attribute is sometimes referred to as the "mnemonic". &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>The size of the text control specified by the number of characters shown.The default value depends on the browser.</description>
+      <name>columns</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when text becomes selected.</description>
+      <name>onselect</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;An attribute that will simultaneously set both the "label"and "accessKey" attributes from a single value, usingconventional ampersand notation. For example, setting this attribute to "T&amp;amp;ext" willset the label to "Text" and the access key to 'e'.&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The inputHidden tag adds a value that
+          will be submitted with a page, but not displayed
+          to the user.</description>
+    <tag-name>inputHidden</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreInputHidden</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Hidden</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The inputListOfValues is a text field that also supports
+launching a dialog to assist users in entering a value.</description>
+    <tag-name>inputListOfValues</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreInputListOfValues</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Text</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>the number of columns to display in the text
+          control. If no value is specified, a default
+          of 30 columns is used. One column is approximately one character
+          in the browser's current display font.</description>
+      <name>columns</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>width of the window, if this command is
+used to launch a window.</description>
+      <name>windowWidth</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when text becomes selected.</description>
+      <name>onselect</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an action listener</description>
+      <name>actionListener</name>
+      <method-signature>void myMethod(javax.faces.event.ActionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>height of the window, if this command is
+used to launch a window.</description>
+      <name>windowHeight</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a reference to an action method sent by the commandButton, or the static outcome of an action</description>
+      <name>action</name>
+      <method-signature>java.lang.String myMethod()</method-signature>
+    </attribute>
+    <attribute>
+      <description>the maximum number of characters that
+          can be entered into the text control. Note that
+          this value is independent of the "cols" displayed.</description>
+      <name>maximumLength</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an return listener</description>
+      <name>returnListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.ReturnEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the search description for the button that launches the dialog.
+           This text is commonly used by user agents to display tooltip
+           help text.</description>
+      <name>searchDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the URI for an alternative image on the button to launch the dialog</description>
+      <name>icon</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>whether previous values of text fields in the form
+          should be remembered and offered for auto completion.</description>
+      <name>autoComplete</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The inputNumberSpinbox tag creates a browser input widget;
+it is used to enter numbers and it has a spinbox to quickly increment or decrement the number.</description>
+    <tag-name>inputNumberSpinbox</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreInputNumberSpinbox</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.NumberSpinbox</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>The minimum number allowed in the input field.</description>
+      <name>minimum</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the number of columns to display in the text
+          control. If no value is specified, a default
+          of 1 columns is used. One column is approximately one character
+          in the browser's current display font.</description>
+      <name>columns</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>The step size by which the spinbox will increase or decrease the number in the input.</description>
+      <name>stepSize</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the inline CSS style for this element</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether previous values of text fields in the form
+          should be remembered and offered for auto completion.</description>
+      <name>autoComplete</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;a CSS style class to use for this component.
+      The styleClass attribute value is rendered on the root dom element.
+      We provide some public style classes you can use that will affect only the 'content' piece of the component:
+      AFFieldTextMarker, AFFieldTextLTRMarker, AFFieldNumberMarker.
+      &lt;/html&gt;</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the short description of the bean.  This text
+         is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when text becomes selected.</description>
+      <name>onselect</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The maximum number allowed in the input field.</description>
+      <name>maximum</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The inputText tag creates a browser input text widget;
+it may be single-line, multi-line, or a "secret" password field.
+It supports displaying a label, text, and messages.</description>
+    <tag-name>inputText</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreInputText</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Text</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the number of columns to display in the text
+          control. If no value is specified, a default
+          of 30 columns is used. One column is approximately one character
+          in the browser's current display font.</description>
+      <name>columns</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>the maximum number of characters that
+          can be entered into the text control. Note that
+          this value is independent of the "cols" displayed.
+          If set to 0 or less, the maximumLength is ignored.</description>
+      <name>maximumLength</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the type of text wrapping to be used in a multi-row
+              text control. This attribute is ignored for single
+              row inputText. By default (or "soft"), multirow text
+        wraps visually, but does not include carriage returns in the
+              submitted value.  Setting this to "off" will disable wrapping;
+              the multirow text will scroll horizontally.  Setting it to "hard"
+              specifies that the value of the text should include any
+              carriage returns needed to wrap the lines.</description>
+      <name>wrap</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether previous values of text fields in the form
+          should be remembered and offered for auto completion.</description>
+      <name>autoComplete</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the inline CSS style for this element</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;a CSS style class to use for this component.
+      The styleClass attribute value is rendered on the root dom element.
+      We provide some public style classes you can use that will affect only the 'content' piece of the component:
+      AFFieldTextMarker, AFFieldTextLTRMarker, AFPhoneFieldTextMarker, AFPostalCodeFieldTextMarker,
+      AFAddressFieldTextMarker, AFFieldNumberMarker.
+      You can still modify the public style definitions for these marker style classes
+      and it will be picked up by using these "Marker" style class
+      because in our base skin implementation we map to the public style by doing this:
+      af|inputText.AFFieldNumberMarker af|inputText::content {-tr-rule-ref:selector(".AFFieldNumber")}.
+      We recommend that you do not add style properties to the "Marker" style classes.
+      They are used solely in the css descendant selector to point to the content pseudo-element.&lt;/html&gt;</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the short description of the bean.  This text
+         is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the number of rows to display in the text control.
+              The default is one. Setting to more than one row
+              precludes the use of some attributes, such as
+              "secret".</description>
+      <name>rows</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when text becomes selected.</description>
+      <name>onselect</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that only applies to single line text
+              controls. When set to "true", it hides the actual
+              value of the text from the user, and will
+              prevent the actual "value" from being shown to the user.</description>
+      <name>secret</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The legend adds a legend describing the meaning of an icon.</description>
+    <tag-name>legend</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreLegend</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Legend</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>A string identifying which icon should
+be described.  Only one value is currently supported: "required".</description>
+      <name>name</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The media component displays media content, such as audio, video,
+          or image in a player embedded in the user agent.</description>
+    <tag-name>media</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreMedia</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Media</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; which media player to use to play the media resource. If possible,
+              the media control will accomodate this request.  However, if
+              the requested player is not available on the user agent, or does
+              not support playing the media resource, an alternate player
+              will be used instead.  In all cases, the "link" player is used
+              as a fallback if no other player is available, or the requested
+              player fails for some reason.
+              &lt;ul&gt;
+                &lt;li&gt;
+                  &lt;code&gt;"none"&lt;/code&gt;
+                  &lt;p&gt;
+                   use a link in the user agent page to launch the playing of the
+                   media resource.
+                  &lt;/p&gt;
+                  &lt;p&gt;
+                   This player setting uses the least amount of space on the page
+                   and uses the user agent's built in content type mapping
+                   to determine how to display the media resource.
+                  &lt;/p&gt;
+                &lt;/li&gt;
+                &lt;li&gt;
+                  &lt;code&gt;"quicktime"&lt;/code&gt;
+                  &lt;p&gt;
+                   use the Apple QuickTime player.
+                  &lt;/p&gt;
+                &lt;/li&gt;
+                &lt;li&gt;
+                  &lt;code&gt;"windows"&lt;/code&gt;
+                  &lt;p&gt;
+                   use the Windows Media Player.
+                  &lt;/p&gt;
+                &lt;/li&gt;
+                &lt;li&gt;
+                  &lt;code&gt;"real"&lt;/code&gt;
+                  &lt;p&gt;
+                   use the Real Player.
+                  &lt;/p&gt;
+                &lt;/li&gt;
+              &lt;/ul&gt;&lt;/html&gt;</description>
+      <name>player</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the MIME type of the media content returned by the "source" URI.
+            This attribute is used as a hint when determining which player to
+            pick, how the controls of the player are to be configured, and
+            the default size of the media player.  If it isn't specified, an
+            attempt will be made to derive this information from the extension
+            of the source URI.</description>
+      <name>contentType</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the set of controls made available to the user for controlling
+              the media playback.  The actual set of controls displayed for the
+              same value may differ between players.  Likewise, the amount of
+              space occupied by the controls will differ from media player to
+              media player.  This can cause problems if the size of the
+              media control has been specified by the "width" and "height"
+              attributes rather than "innerWidth" and "innerHeight".
+              &lt;ul&gt;
+                &lt;li&gt;
+                  &lt;code&gt;"none"&lt;/code&gt;
+                  &lt;p&gt;
+                   don't show any controls for the media player and don't allow
+                   control access through alternate means, such as context menus.
+                  &lt;/p&gt;
+                  &lt;p&gt;
+                   This value is typically only used in kiosk-type applications
+                   where no user control over the playing of the media is allowed.
+                   It is typically used in conjunction with setting the
+                   "autostart" attribute to "true", and the "playCount" attribute
+                   to "0" to cause the media play immediately and then loop.
+                  &lt;/p&gt;
+                &lt;/li&gt;
+                &lt;li&gt;
+                  &lt;code&gt;"noneVisible"&lt;/code&gt;
+                  &lt;p&gt;
+                   don't show any controls for the media player but allow control
+                   access through alternate means, such as context menus.
+                  &lt;/p&gt;
+                  &lt;p&gt;
+                   This value is typically only used in applications where user
+                   control over the playing of the media is allowed, but
+                   not encouraged.  It is typically used in conjunction with
+                   setting the "autostart" attribute to "true", and the
+                   "playCount" attribute to "0" to cause the media to play
+                   immediately and then loop.
+                  &lt;/p&gt;
+                &lt;/li&gt;
+                &lt;li&gt;
+                  &lt;code&gt;"minimal"&lt;/code&gt;
+                  &lt;p&gt;
+                    show a minimal set of controls for playing media on the media
+                    player.
+                  &lt;/p&gt;
+                  &lt;p&gt;
+                   This value gives users control over the most
+                   important media playing controls, while occupying the least
+                   amount of additional space on the user agent.
+                  &lt;/p&gt;
+                &lt;/li&gt;
+                &lt;li&gt;
+                  &lt;code&gt;"typical"&lt;/code&gt;
+                  &lt;p&gt;
+                   show the typical set of controls for playing media on the
+                   media player.
+                  &lt;/p&gt;
+                  &lt;p&gt;
+                   This value, the default, gives users control over the most
+                   common media playing controls, without occupying an inordinate
+                   amount of extra space on the user agent.
+                  &lt;/p&gt;
+                &lt;/li&gt;
+                &lt;li&gt;
+                  &lt;code&gt;"all"&lt;/code&gt;
+                  &lt;p&gt;
+                   Show all available controls for playing media on the media player
+                  &lt;/p&gt;
+                  &lt;p&gt;
+                   Using this setting can cause large amount of additional space
+                   to be required, depending on the media player used.
+                  &lt;/p&gt;
+                &lt;/li&gt;
+              &lt;/ul&gt;
+              &lt;p&gt;
+                The default of this attribute is &lt;code&gt;"typical"&lt;/code&gt;.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>controls</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; height in pixels to reserve for the media player plus its content.
+            As the extra height needed for the media player controls can vary
+            from media player to media player and depend on the controls
+            displayed in the media player, it is recommended that the
+            "innerHeight" attribute be used in preference to this attribute.
+            &lt;p&gt;
+            If both the "height" and "innerHeight" attributes are specified,
+            the "height" attribute will be used.
+            &lt;/p&gt;
+            &lt;p&gt;
+            If no height is specified, the height of the media control is
+            determined by calculating the "innerHeight" and adding any extra
+            height necessary to display the media player controls.
+            &lt;/p&gt;&lt;/html&gt;</description>
+      <name>height</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; width in pixels to reserve for the media player plus its content.
+            As the extra width needed for the media player controls can vary
+            from media player to media player and depend on the controls
+            displayed in the media player, it is recommended that the
+            "innerWidth" attribute be used in preference to this attribute.
+            &lt;p&gt;
+            If both the "width" and "innerWidth" attributes are specified,
+            the "width" attribute will be used.
+            &lt;/p&gt;
+            &lt;p&gt;
+            If no width is specified, the width of the media control is
+            determined by calculating the "innerWidth" and adding any extra
+            width necessary to display the media player controls.
+            &lt;/p&gt;&lt;/html&gt;</description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; height in pixels to reserve for the media player content.  This
+            will typically be set to the pixel height of the media resource
+            to display.
+            &lt;p&gt;
+            If no "innerHeight" is specified, the "innerHeight" will be defaulted
+            based on the content type of the media resource to play.
+            &lt;/p&gt;
+            &lt;p&gt;
+            If both the "height" and "innerHeight" attributes are specified,
+            the "height" attribute will be used.
+            &lt;/p&gt;&lt;/html&gt;</description>
+      <name>innerHeight</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the media resource loads
+            and plays automatically without user initiation.  When set to "true",
+            the media resource will load and play as soon as possible.</description>
+      <name>autostart</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Message to display in the media player while the media resource
+              is loading.</description>
+      <name>standbyText</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the number of times the media resource will play.  If set to "0",
+            the resource will loop until the user stops the playing.</description>
+      <name>playCount</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>the URI specifying the location of the media resource.  If no
+            contentType is specified, the contentType will be inferred from
+            the extension of the source attribute.</description>
+      <name>source</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; width in pixels to reserve for the media player content.  This
+            will typically be set to the pixel width of the media resource
+            to display.
+            &lt;p&gt;
+            If no "innerWidth" is specified, the "innerWidth" will be defaulted
+            based on the content type of the media resource to play.
+            &lt;/p&gt;
+            &lt;p&gt;
+            If both the "width" and "innerWidth" attributes are specified,
+            the "width" attribute will be used.
+            &lt;/p&gt;&lt;/html&gt;</description>
+      <name>innerWidth</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Component that displays a message on behalf of a component.
+Trinidad input components typically support automatically showing
+their own messages, so this tag should be used only when
+setting the "simple" attribute to true.</description>
+    <tag-name>message</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreMessage</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Message</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the relative ID from this component to the component whose messages will be displayed</description>
+      <name>for</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the type of the message; acceptable values
+          are "error", "warning", "info", and "none".  Defaults to "none".</description>
+      <name>messageType</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the error, warning, or informational text.</description>
+      <name>message</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The messages bean is used at the top of an application page to give
+        the user important messaging information.</description>
+    <tag-name>messages</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreMessages</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Messages</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the overridden title text.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>whether to render all messages or just global messages. Normally
+global messages are rendered followed by messages for individual
+components. If this attribute is set to true, only the global
+messages will be rendered.</description>
+      <name>globalOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the main text message for the box.</description>
+      <name>message</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The navigationPane component creates a series of navigation items representing one level in a navigation hierarchy.</description>
+    <tag-name>navigationPane</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreNavigationPane</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Pane</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Text that describes the items.  (This attribute is only applicable if the rendering hint supports it, e.g. "choice".)</description>
+      <name>title</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the level, based on a 0 based index, in the menuModel to render based on the focusPath of the menuModel.</description>
+      <name>level</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the hierarchy of navigation data - must be of type
+            org.apache.myfaces.trinidad.model.MenuModel</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;How the navigational items are displayed.  Options are:
+              &lt;ul&gt;&lt;li&gt;bar
+                &lt;/li&gt;&lt;li&gt;buttons
+                &lt;/li&gt;&lt;li&gt;choice
+                &lt;/li&gt;&lt;li&gt;list
+                &lt;/li&gt;&lt;li&gt;tabs
+                &lt;/li&gt;&lt;/ul&gt;
+               &lt;/html&gt;</description>
+      <name>hint</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:&lt;ul&gt;&lt;li&gt;"model" - returns the CollectionModel for this component&lt;/li&gt;&lt;li&gt;"index" - returns the zero based row index&lt;/li&gt;&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Whether the component is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The Trinidad NavigationTree is used to display data that is structured in a hierarchical format.</description>
+    <tag-name>navigationTree</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreNavigationTree</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.NavigationTree</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the starting level, based on a 0 based index, in the menuModel to render based on the focusPath of the menuModel.</description>
+      <name>startLevel</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the hierarchy of tree data - must be of type
+            org.apache.myfaces.trinidad.model.MenuModel</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>the set of disclosed rows for this component.
+Each entry in the set is a rowKey.</description>
+      <name>disclosedRowKeys</name>
+      <type>org.apache.myfaces.trinidad.model.RowKeySet</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:&lt;ul&gt;&lt;li&gt;"model" - returns the CollectionModel for this component&lt;/li&gt;&lt;li&gt;"index" - returns the zero based row index&lt;/li&gt;&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation
+          should be skipped when row disclosure
+          events are generated by this component.
+
+          When immediate is false (the default), events will
+          be delivered during the Invoke Application phase, which
+          will trigger validation.  When set to true,  events
+          will be executed during the Apply Request Values phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an ExpansionListener</description>
+      <name>rowDisclosureListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.RowDisclosureEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The outputDocument component supports styled text with line breaks.</description>
+    <tag-name>outputDocument</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreOutputDocument</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Document</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the style class of the title. This property will be
+         considered only if a title facet is used.</description>
+      <name>titleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the style class of the separator. This property will be
+         considered only if a separator facet is used.</description>
+      <name>separatorClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The outputFormatted bean accepts a string in its "value" attribute
+        containing a very limited set of HTML markup and outputs formatted
+        results.</description>
+    <tag-name>outputFormatted</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreOutputFormatted</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Formatted</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the style usage, intended to make it easier to
+              put the correct style on the text.
+              Set this attribute when the outputFormatted
+              is for instruction text, page stamp text, or inContextBranding
+              text.
+              The valid values are "instruction" ,
+              "pageStamp", and "inContextBranding".
+              If styleUsage and styleClass attributes are both set,
+              the styleClass attribute takes precedence.</description>
+      <name>styleUsage</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Component that displays a label for a form component.</description>
+    <tag-name>outputLabel</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreOutputLabel</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Label</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set.
+              For accessibility reasons, this functionality is not supported in
+              screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the ID of the component that this component
+refers to</description>
+      <name>for</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>valueAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The outputText component supports styled text.</description>
+    <tag-name>outputText</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreOutputText</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Text</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; an attribute controlling whether output will
+be escaped for the current markup language or not.  This attribute
+defaults to true, and should only be set to false if absolutely necessary.
+When set to false, you may exposed to cross-site scripting attacks if
+the value of this component is any way derived from values supplied
+by a user;  see &lt;code&gt;outputFormatted&lt;/code&gt; for a safe
+alternative.  In addition, nearly all attributes are ignored when "escape"
+is set to false (e.g., "styleClass" is not output).&lt;/html&gt;</description>
+      <name>escape</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the length at which the text should automatically begin
+              truncating.  When set to zero (the default), the string
+              will never truncate.  Values from one to thirteen will
+              be treated as thirteen - the outputText component will not
+              truncate strings shorter than thirteen characters.</description>
+      <name>truncateAt</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>an additional description to be attached
+to the text, for use in improving accessibility.  The description will
+be available to screen readers and other accessibility agents, but will
+not be otherwise visible.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>description</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The Page component is similar to the PanelPage component, except that instead of having navigation1, navigation2, navigation3, and navigationGlobal facets for adding navigation item information, the user binds a model object and a stamp to render these areas.</description>
+    <tag-name>page</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePage</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Page</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>what the chromeType is for the page: compact or expanded. If
+              compact, the productBranding will be shown alongside the
+              corporate branding instead of below the corporate branding.</description>
+      <name>chromeType</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the hierarchy of menu data - must be of type 
+            org.apache.myfaces.trinidad.model.MenuModel</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>the set of disclosed rows for this component.
+Each entry in the set is a rowKey.</description>
+      <name>disclosedRowKeys</name>
+      <type>org.apache.myfaces.trinidad.model.RowKeySet</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this 
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:&lt;ul&gt;&lt;li&gt;"model" - returns the CollectionModel for this component&lt;/li&gt;&lt;li&gt;"index" - returns the zero based row index&lt;/li&gt;&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation 
+          should be skipped when row disclosure
+          events are generated by this component.
+
+          When immediate is false (the default), events will
+          be delivered during the Invoke Application phase, which
+          will trigger validation.  When set to true,  events
+          will be executed during the Apply Request Values phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an ExpansionListener</description>
+      <name>rowDisclosureListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.RowDisclosureEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelAccordion control creates, contains and shows a series of items defined by showDetailItem nodes.</description>
+    <tag-name>panelAccordion</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelAccordion</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Accordion</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Indicates whether more than one detail item may be
+disclosed at a time.  Use "false" (the default) to keep a maximum of
+one detail item disclosed at all times.  Use "true" to make it
+possible for multiple detail items to be disclosed.</description>
+      <name>discloseMany</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Indicates whether a minimum of one detail item must be
+disclosed at a time.  Use "false" (the default) to keep a minimum of one
+detail item disclosed at all times.  Use "true" to make it possible for
+all items to be collapsed.</description>
+      <name>discloseNone</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelBorderLayout component is a layout element which lays out all of its
+          children consecutively in its middle, and supports the following
+          facets: top, bottom, left, right, start, end, innerTop, innerBottom, innerLeft, innerRight, innerStart, and innerEnd</description>
+    <tag-name>panelBorderLayout</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelBorderLayout</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.BorderLayout</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS width to give to the inner end facet in valid CSS units.
+        Used if the layout is positioned and the inner end facet is present and rendered and the inner left or right facet
+        is not used instead. Defaults to 25%.</description>
+      <name>innerEndWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS height to give to the inner bottom facet in valid CSS units.
+        Used if the layout is positioned and the inner bottom facet is present and rendered. Defaults to 25%.</description>
+      <name>innerBottomHeight</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS height to give to the inner top facet in valid CSS units.
+        Used if the layout is positioned and the inner top facet is present and rendered. Defaults to 25%.</description>
+      <name>innerTopHeight</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS height to give to the bottom facet in valid CSS units.
+        Used if the layout is positioned and the bottom facet is present and rendered. Defaults to 25%.</description>
+      <name>bottomHeight</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Changes how the panel is rendered. The default is to expand the panel to fix the size of its contents.
+        Setting the value to positioned will force the panel to use the size given to it via CSS (either via the
+        styleClass, inlineStyle or via the skin). The facets are sized using the height and width attributes and
+        the center is given the remainder. With a positioned layout the height and width should be set and the
+        position should be set to relative or absolute. Note that due to limitations in IE6, the positioned layout
+        uses JavaScript resizing that will affect performance. Expand is the default.</description>
+      <name>layout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS width to give to the end facet in valid CSS units.
+        Used if the layout is positioned and the end facet is present and rendered and the left or right facet
+        is not used instead. Defaults to 25%.</description>
+      <name>endWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS width to give to the inner start facet in valid CSS units.
+        Used if the layout is positioned and the inner start facet is present and rendered and the inner left or right facet
+        is not used instead. Defaults to 25%.</description>
+      <name>innerStartWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS width to give to the start facet in valid CSS units.
+        Used if the layout is positioned and the start facet is present and rendered and the left or right facet
+        is not used instead. Defaults to 25%.</description>
+      <name>startWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS height to give to the top facet in valid CSS units.
+        Used if the layout is positioned and the top facet is present and rendered. Defaults to 25%.</description>
+      <name>topHeight</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS width to give to the left facet in valid CSS units.
+        Used if the layout is positioned and the left facet is present and rendered. Defaults to 25%.</description>
+      <name>leftWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS width to give to the inner right facet in valid CSS units.
+        Used if the layout is positioned and the inner right facet is present and rendered. Defaults to 25%.</description>
+      <name>innerRightWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS width to give to the right facet in valid CSS units.
+        Used if the layout is positioned and the right facet is present and rendered. Defaults to 25%.</description>
+      <name>rightWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the CSS width to give to the inner left facet in valid CSS units.
+        Used if the layout is positioned and the inner left facet is present and rendered. Defaults to 25%.</description>
+      <name>innerLeftWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelBox is used to place ancillary information on a page,
+offset by a certain color.</description>
+    <tag-name>panelBox</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelBox</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Box</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>An URL to an image to use for the icon of
+the content container.</description>
+      <name>icon</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The header of the content container.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the appearance type of the content container. It should be one of "light",
+"medium", "dark", or "transparent"</description>
+      <name>background</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>The inline style of the content region.</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelButtonBar lays out a set of buttons.</description>
+    <tag-name>panelButtonBar</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelButtonBar</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.ButtonBar</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the horizontal alignment to one of start, end, left,
+right, or center.</description>
+      <name>halign</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelCaptionGroup is used to render a set of components,
+      into a related and more managable grouping.  The group is surrounded by a border
+      containing the group caption.</description>
+    <tag-name>panelCaptionGroup</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelCaptionGroup</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.PanelCaptionGroup</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The text to be rendered as the caption for the group content.</description>
+      <name>captionText</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelChoice control creates, contains and shows a series of items defined by showDetailItem nodes.</description>
+    <tag-name>panelChoice</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelChoice</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Choice</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>position of the control elements. Defaults to
+         "start", if not specified. Other value supported is"top".</description>
+      <name>position</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>alignment of the elements. Defaults to
+         "center", if not specified. Other values are "start",
+         "end", "top", and "bottom".</description>
+      <name>alignment</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the user-visible text of the item</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelFormLayout lays out input form controls, such that their labels and fields line up vertically.  The children of this component are input controls, they are inputText, inputHidden, inputFile, inputColor, inputListOfValues, inputDate, selectBooleanCheckBox, selectBooleanRadio, selectOneChoice, selectOneListBox, selectOneRadio, selectManyListBox and panelLabelAndMessage.  These components must have their "simple" attribute set to false (the default).  For cases where other controls are required inside panelFormLayout, wrap them in a panelLabelAndMessage.
+
+This component can be used to lay out multiple columns using the rows attribute.  The children are laid out down and then across.  Note that this layout is not a table layout so there is no overall table row.  Instead, rows are unique per column; in one column a row may consume more vertical space than a nearby row in another column.
+
+The panelFormLayout is an example of one of the components that has support for grouping its children components.
+If you place panelFormLayout child items inside of a group, separators will be drawn around the group of form items if adjacent to other form items (separators won't be drawn at the top if the group is the first item in the column or, similarly, at the bottom if the group is the last item in the column).
+Grouped panelFormLayout items are kept in the same column of the panelFormLayout even when the assigned rows attribute is set to a value smaller than the number of items in the group.
+The panelFormLayout component also supports the group component in its footer facet so you can place more than one item in the footer.  You can even group footer items one additional time to get separators to appear.</description>
+    <tag-name>panelFormLayout</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelFormLayout</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.FormLayout</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The preferred width of the label.  Usually a percentage, but may be specified as either a percentage or an absolute number of pixels.  If the width is not specified, it will default appropriately.  If specified as a percentage the labelWidth plus the fieldWidth should add up to 100%, regardless of the number of columns.  If the labelWidth is specified and is a percentage the fieldWidth will be derived appropriately if not specified.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>labelWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The alignment of label prompts for the form items.</description>
+      <name>labelAlignment</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Sets the number of rows after which to start a new column.  This attribute defaults to Integer.MAX_VALUE.  The number of rows actually rendered depends also on the "maxColumns" property.  If the children will not fit in the given number of rows and columns, the number of rows will increase to accomodate the children.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>rows</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The preferred width of the field.  Usually a percentage, but may be specified as either a percentage or an absolute number of pixels.  If the width is not specified, it will default appropriately.  If specified as a percentage the labelWidth plus the fieldWidth should add up to 100%, regardless of the number of columns.  If the fieldWidth is specified and is a percentage the labelWidth will be derived appropriately if not specified.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>fieldWidth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Sets the maximum number of columns to show.  This attribute defaults to 3 and 2 on PDAs.  If this panelFormLayout is inside of another panelFormLayout, this will always be 1.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>maxColumns</name>
+      <type>int</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>A panel component that displays its children in a group.</description>
+    <tag-name>panelGroupLayout</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelGroupLayout</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.GroupLayout</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Type of layout, either "vertical", "horizontal" (no wrapping) or"default" (horizontal with wrapping).</description>
+      <name>layout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelHeader control places a label and optional icon at the top of a section.</description>
+    <tag-name>panelHeader</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelHeader</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Header</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the URI for the icon of the header.</description>
+      <name>icon</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the header.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Set if an error, info, confirmation, or warning header is needed.</description>
+      <name>messageType</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Size of this panelHeader. The largest is 0 and corresponds to an H1 header
+        the smallest is 5 and corresponds to an H6 Header.  Note that this version of the tag will 
+        display all sizes above 2 the same as size 2. Setting the size to a negative number will
+        allow the header to be calculated according to its parent header.  The default value for 
+        this property is -1.</description>
+      <name>size</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelHorizontalLayout control is a layout element that
+arranges its children horizontally. The vertical and horizontal alignment
+can be specified.</description>
+    <tag-name>panelHorizontalLayout</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelHorizontalLayout</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.HorizontalLayout</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the horizontal alignment to one of start, end, left,
+right, or center.</description>
+      <name>halign</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the vertical alignment to one of top, bottom, middle, or baseline.</description>
+      <name>valign</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>This component lays out a label and children.
+      Typically, the only child of this component will be an input element of some sort,
+      but as many children as necessary can be added.  When using panelLabelAndMessage with
+      a Trinidad input component, you should always set simple="true" on the input component.
+      Non-simple Trinidad input components already effectively have all the functionality of
+      panelLabelAndMessage. Note that the label and messages that are rendered only apply to the
+      "for" component so messages and labels will not be shown if there are multiple input
+      child components.
+      To lay out multiple panelLabelAndMessage components - or multiple non-simple Trinidad
+      input components - you can use the panelForm component.  When panelLabelAndMessage
+      components are placed inside a panelForm the labels will line up.</description>
+    <tag-name>panelLabelAndMessage</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelLabelAndMessage</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.LabelAndMessage</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the panel should show an indicator that its contents are required.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The ID of the component that this component's label refers to.</description>
+      <name>for</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies inline styles for the label portion of the component, e.g. "vertical-align: bottom;" to align the label to the bottom of the container.</description>
+      <name>labelStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>An attribute that will simultaneously set both the "label" and "accessKey" attributes from a single value, using conventional ampersand notation.  For example, setting this attribute to "T&amp;amp;ext" will set the label to "Text" and the access key to 'e'.</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelList control outputs each visible child
+          in a list with a bullet next to it.</description>
+    <tag-name>panelList</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelList</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.List</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Styles the list. For example, you can style the list to be squares like this:
+      listStyle='list-style-type:square'</description>
+      <name>listStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Sets
+                  the number of rows after which to start a new column.
+                  This attribute defaults to Integer.MAX_VALUE.
+                  The number of rows actually rendered depends also on the
+                  "maxColumns" attribute.
+                  If the children will not fit in the given number
+                  of rows and columns, the number of rows will
+                  increase to accomodate the children.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>rows</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Sets
+                  the maximum number of columns to show.
+                  This attribute defaults to 3 and defaults to 2 for PDA's
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>maxColumns</name>
+      <type>int</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>PanelPage lays out an entire page.</description>
+    <tag-name>panelPage</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelPage</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Page</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the number of pixels that the auxiliary1 content should consume (this is a width if the orientationis "start" or "end" or a height if the orientation is "bottom").</description>
+      <name>auxiliary1Size</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the number of pixels that the auxiliary2 content should consume (this is a width if the orientationis "start" or "end" or a height if the orientation is "bottom").</description>
+      <name>auxiliary2Size</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the number of pixels that the auxiliaryGlobal content should consume (this is a width if the orientationis "start" or "end" or a height if the orientation is "bottom").</description>
+      <name>auxiliaryGlobalSize</name>
+      <type>int</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>PanelPageHeader lays out the top portion of a page.</description>
+    <tag-name>panelPageHeader</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelPageHeader</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.PageHeader</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>what the chromeType is for the page: compact or expanded. If
+              compact, the productBranding will be shown alongside the
+              corporate branding instead of below the corporate branding.</description>
+      <name>chromeType</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelPopup is used to place ancillary information on a page,
+made visible via a clickable link.</description>
+    <tag-name>panelPopup</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelPopup</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Popup</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>The position of the content container when visible. Defaults to
+         "relative" if not specified. Other values are "centered" (centered on screen).</description>
+      <name>position</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The title of the panel when visible.  The titlebar is not rendered if this attribute
+        is not specified.</description>
+      <name>title</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Set the height of the popup.  If not present the width defaults to the height of the content.</description>
+      <name>height</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The display mode of the panel.  Defaults to "false" (non-modal).
+        Non-Modal panels will close when the user clicks off the panel. Modal popups are
+        rendered with a titlebar and close icon.  Clicking the close icon will close the
+        modal popup.</description>
+      <name>modal</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Defines the launch behaviour of the popup.  If set to 'click' the popup will
+        appear when the trigger is clicked, and disappear when you click off the popup.  The 'hover' value
+        will cause the popup to appear while the mouse is over the trigger, and disappear when the mouse
+        leaves either the trigger or the popup panel.</description>
+      <name>triggerType</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The icon to render as a link to launch the popup panel.  If the 'trigger'
+        facet is defined, then this attribute is ignored.  If the 'text' attribute is also specified,
+        then the icon and text will both be rendered.</description>
+      <name>icon</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The text to render as a link to launch the popup panel.  If the 'trigger'
+        facet is defined, then this attribute is ignored.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The popup's vertical offset in pixels from the current mouse position.
+        This property only applies to popups using relative positioning.</description>
+      <name>yoffset</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Set the width of the popup.  If not present the width defaults to the width of the content.</description>
+      <name>width</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The popup's horizontal offset in pixels from the current mouse position.
+        This property only applies to popups using relative positioning.</description>
+      <name>xoffset</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>The inline style of the content region.</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelRadio control creates, contains and shows a series of items defined by showDetailItem nodes.</description>
+    <tag-name>panelRadio</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelRadio</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Radio</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>position of the control elements. Defaults to
+         "start", if not specified. Other value supported is"top".</description>
+      <name>position</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>alignment of the elements. Defaults to
+         "center", if not specified. Other values are "start",
+         "end", "top", and "bottom".</description>
+      <name>alignment</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the user-visible text of the item</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelSideBar control renders a side navigation bar.</description>
+    <tag-name>panelSideBar</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelSideBar</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.SideBar</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the width of the panelSideBar in pixels or as a percentage.</description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelTabbed control creates, contains and shows a series of items defined by showDetailItem nodes.</description>
+    <tag-name>panelTabbed</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelTabbed</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Tab</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the position of the tab bar. Defaults to
+             "both", if not specified. Other values are "above" and "below".</description>
+      <name>position</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The panelTip tag provides a container for page or section level hints
+to the user.</description>
+    <tag-name>panelTip</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePanelTip</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Tip</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>This components polls the server periodically so that any dependent
+          components get a chance to update themselves.</description>
+    <tag-name>poll</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CorePoll</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Poll</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether data validation 
+          should be skipped when poll
+          events are generated by this component.
+
+          When immediate is false (the default), events will
+          be delivered during the Invoke Application phase, which
+          will trigger validation.  When set to true,  events
+          will be executed during the Apply Request Values phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a poll listener</description>
+      <name>pollListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.PollEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the time between poll events, in milliseconds. 
+            The default is 5000. If in screen-reader mode, 
+            make sure the interval is long enough for the
+            screen reader to read through the re-render before a 
+            new poll occurs.</description>
+      <name>interval</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>ProcessChoiceBar is a UIXProcess component that renders a previous
+          button, a choice bar, and a next button.</description>
+    <tag-name>processChoiceBar</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreProcessChoiceBar</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.ChoiceBar</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this 
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:&lt;ul&gt;&lt;li&gt;"model" - returns the CollectionModel for this component&lt;/li&gt;&lt;li&gt;"index" - returns the zero based row index&lt;/li&gt;&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the hierarchy of data - must be of type 
+            org.apache.myfaces.trinidad.model.MenuModel</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The progressIndicator component can be used to give users
+          an understanding that there is a back end task in progress.</description>
+    <tag-name>progressIndicator</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreProgressIndicator</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Indicator</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>A method reference to an action listener.
+            This is invoked after the task in progress is complete.</description>
+      <name>actionListener</name>
+      <method-signature>void myMethod(javax.faces.event.ActionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation - client-side or
+            server-side -
+          will be skipped when
+          events are generated by this component.
+
+          When immediate is true, the command's action and
+          ActionListeners, including the default ActionListener
+          provided by the JavaServer Faces implementation,
+          will be executed during Apply Request Values phase
+          of the request processing lifecycle, rather than
+          waiting until the Invoke Application phase.  Because
+          validation runs during Process Validators (after
+          Apply Request Values, but before Invoke Application),
+          setting immediate to true will skip validation.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The data model being used by this progress component.
+              The model should be of type 
+              org.apache.myfaces.trinidad.model.BoundedRangeModel.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>A reference to an action method sent by the progress component, 
+              or the static outcome of an action. This is invoked when the task
+              under progress is complete.</description>
+      <name>action</name>
+      <method-signature>java.lang.String myMethod()</method-signature>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The reset button control creates a push button which will
+          reset the content of a form.</description>
+    <tag-name>resetButton</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreResetButton</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Button</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to this button.
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              &lt;p&gt;
+                If the same access key appears in multiple locations in the
+                same page of output, the rendering user agent will cycle
+                among the elements accessed by the similar keys.
+              &lt;/p&gt;&lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+              &lt;/p&gt;&lt;p&gt;
+                The character specified by this attribute
+                &lt;strong&gt;must&lt;/strong&gt; exist in the
+                &lt;code&gt;Text&lt;/code&gt; attribute of this button instance.
+                If it does not, the user will receive no visual indication of
+                the existence of the accessKey.
+                The easiest, and most convenient
+                way to specify both the text and the mnemonic together is
+                to use textAndAccessKey.
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>the textual label of the button.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "text"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "T&amp;amp;amp;ext" will
+              set the text to "Text" and the access key to 'e'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>textAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the reset button should be disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectBooleanCheckbox control is a standard browser input
+          checkbox.  It supports displaying a prompt, text, and messages.</description>
+    <tag-name>selectBooleanCheckbox</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectBooleanCheckbox</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Checkbox</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to this checkbox.
+          For accessibility reasons, this functionality is not supported in
+          screen reader mode.
+          &lt;p&gt;
+            If the same access key appears in multiple locations in the
+            same page of output, the rendering user agent will cycle
+            among the elements accessed by the similar keys.
+          &lt;/p&gt;&lt;p&gt;
+            This attribute is sometimes referred to as the "mnemonic".
+          &lt;/p&gt;&lt;p&gt;
+            The character specified by this attribute
+            &lt;strong&gt;must&lt;/strong&gt;exist in the
+            &lt;code&gt;text&lt;/code&gt;attribute of this selectBooleanCheckbox instance.
+            If it does not, the user will receive no visual indication of
+            the existence of the accessKey.
+            &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "text"
+          and "accessKey" attributes from a single value, using
+          conventional ampersand ('&amp;amp;') notation.
+          &lt;p&gt;
+          For example, setting this attribute to "T&amp;amp;amp;ext" will
+          set the text to "Text" and the access key to 'e'.
+          &lt;/p&gt;&lt;/html&gt;</description>
+      <name>textAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether or not the component is
+              currently selected.  This is a typesafe alias for the "value"
+              attribute. Note that "selected" and "value" attributes should not be used at the same time to avoid conflict.</description>
+      <name>selected</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the text value of the checkbox.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectBooleanRadio control maps to a single browser input
+          radio, grouped with all other selectBooleanRadio controls
+          in the same form which share the same "group" attribute.
+          It supports displaying a prompt, text, and messages.</description>
+    <tag-name>selectBooleanRadio</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectBooleanRadio</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Radio</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to this radio button.
+          For accessibility reasons, this functionality is not supported in
+          screen reader mode.
+          &lt;p&gt;
+            If the same access key appears in multiple locations in the
+            same page of output, the rendering user agent will cycle
+            among the elements accessed by the similar keys.
+          &lt;/p&gt;&lt;p&gt;
+            This attribute is sometimes referred to as the "mnemonic".
+          &lt;/p&gt;&lt;p&gt;
+            The character specified by this attribute
+            &lt;strong&gt;must&lt;/strong&gt;exist in the
+            &lt;code&gt;text&lt;/code&gt;attribute of this CheckBox instance.
+            If it does not, the user will receive no visual indication of
+            the existence of the accessKey.
+            &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "text"
+          and "accessKey" attributes from a single value, using
+          conventional ampersand ('&amp;amp;') notation.
+          &lt;p&gt;
+          For example, setting this attribute to "T&amp;amp;amp;ext" will
+          set the text to "Text" and the access key to 'e'.
+          &lt;/p&gt;&lt;/html&gt;</description>
+      <name>textAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether or not the component is
+              currently selected.  This is a typesafe alias for the "value"
+              attribute. Note that "selected" and "value" attributes should not be used at the same time to avoid conflict.</description>
+      <name>selected</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the text of the radio button.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <name>group</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectItem tag represents a single item that the user
+may select from a list, choice, radio, or shuttle Trinidad control.</description>
+    <tag-name>selectItem</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectItem</component-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the value used to identify this item when the
+              parent control is submitted to the server.  If no value is specified
+              for a particular item, the item's contents will be used as its
+              value.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>the description associated with this option.
+        This is used in selectManyShuttle and selectOrderShuttle, and ignored otherwise.</description>
+      <name>longDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>the user-visible text of the item</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the bean.  This text
+         is commonly used by user agents to display advisory information about the option.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the item is disabled.  By default, no
+          items are disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectManyCheckbox component creates a component which allows
+          the user to select many values from a series of checkboxes.</description>
+    <tag-name>selectManyCheckbox</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectManyCheckbox</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Checkbox</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the values are passed through to
+        the client. When valuePassThru is false
+        the value and the options' values
+        are converted to indexes before being sent to the client.
+        Therefore, when valuePassThru is false,
+        there is no need to write your own converter when you are using custom Objects
+        as your values and/or options.
+        If you need to know the actual values on the client-side, then you can set
+        valuePassThru to true. This will pass the values through to the client,
+        using your custom converter if it is available; a custom converter is
+        needed if you are using custom objects. The default is false.</description>
+      <name>valuePassThru</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the control displays the buttons
+              horizontally or vertically.The valid values are "horizontal" and
+              "vertical",the default being "vertical".</description>
+      <name>layout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectManyListbox component creates a component which allows
+          the user to select many values from a list of items.</description>
+    <tag-name>selectManyListbox</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectManyListbox</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Listbox</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the values are passed through to
+        the client. When valuePassThru is false
+        the value and the options' values
+        are converted to indexes before being sent to the client.
+        Therefore, when valuePassThru is false,
+        there is no need to write your own converter when you are using custom Objects
+        as your values and/or options.
+        If you need to know the actual values on the client-side, then you can set
+        valuePassThru to true. This will pass the values through to the client,
+        using your custom converter if it is available; a custom converter is
+        needed if you are using custom objects. The default is false.</description>
+      <name>valuePassThru</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>how many items should be visible.  Small values may be overridden if the platform cannot render a list of that size correctly.</description>
+      <name>size</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectManyShuttle component provides a mechanism for selecting
+   multiple values from a list of values by allowing the user to move
+   items between two lists.</description>
+    <tag-name>selectManyShuttle</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectManyShuttle</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Shuttle</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the header of the leading list of the shuttle.</description>
+      <name>leadingHeader</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether or not the leading list has an area to display descriptions.</description>
+      <name>leadingDescShown</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the trailing list has an area to display descriptions.</description>
+      <name>trailingDescShown</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether or not the values are passed through to
+        the client. When valuePassThru is false
+        the value and the options' values
+        are converted to indexes before being sent to the client.
+        Therefore, when valuePassThru is false,
+        there is no need to write your own converter when you are using custom Objects
+        as your values and/or options.
+        If you need to know the actual values on the client-side, then you can set
+        valuePassThru to true. This will pass the values through to the client,
+        using your custom converter if it is available; a custom converter is
+        needed if you are using custom objects. The default is false.</description>
+      <name>valuePassThru</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the header of the trailing list of the shuttle.</description>
+      <name>trailingHeader</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label for the shuttle that is used to identify the component only when displaying error messages. The label specified does not otherwise appear on the page.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the display size(number of items) of the lists. The size
+              specified must be between 10 and 20 items. If the attribute is not
+              set or has a value less than 10, the size would have a default or
+              minimum value of 10. If the attribute value specified is more than
+              20 items, the size would have the maximum value of 20.</description>
+      <name>size</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectOneChoice component creates a menu-style component, which allows the user to select a single value from a list of items.</description>
+    <tag-name>selectOneChoice</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectOneChoice</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Choice</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>The label for the option that represents a value of null, meaning nothing is selected. If unselectedLabel is not set and if the component does not have a selected value, then an option with an empty string as the label and value is rendered as the first option in the choice box (if there isn't an empty option already defined). Once an option has been successfully selected, and if unselectedLabel is not set, then the empty option will not be rendered.</description>
+      <name>unselectedLabel</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the values are passed through to
+        the client. When valuePassThru is false
+        the value and the options' values
+        are converted to indexes before being sent to the client.
+        Therefore, when valuePassThru is false,
+        there is no need to write your own converter when you are using custom Objects
+        as your values and/or options.
+        If you need to know the actual values on the client-side, then you can set
+        valuePassThru to true. This will pass the values through to the client,
+        using your custom converter if it is available; a custom converter is
+        needed if you are using custom objects. The default is false.</description>
+      <name>valuePassThru</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectOneListbox  component creates a component which allows
+          the user to select a single value from a list of items.</description>
+    <tag-name>selectOneListbox</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectOneListbox</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Listbox</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey, showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the label for an additional item that indicates no selection has
+   been made.  When the user selects this item, "required" validation will
+   not pass, or a null value will be set if the component is not "required".</description>
+      <name>unselectedLabel</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the values are passed through to
+        the client. When valuePassThru is false
+        the value and the options' values
+        are converted to indexes before being sent to the client.
+        Therefore, when valuePassThru is false,
+        there is no need to write your own converter when you are using custom Objects
+        as your values and/or options.
+        If you need to know the actual values on the client-side, then you can set
+        valuePassThru to true. This will pass the values through to the client,
+        using your custom converter if it is available; a custom converter is
+        needed if you are using custom objects. The default is false.</description>
+      <name>valuePassThru</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The number of items that should be visible in the list. The renderer may constrain the maximum and minimum number of items shown.</description>
+      <name>size</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectOneRadio component creates a component
+          which allows the user to select a single value from a set of items
+          displayed as a series of radio buttons.</description>
+    <tag-name>selectOneRadio</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectOneRadio</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Radio</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Character used to gain quick access to
+               the form element specified by the
+         &lt;code&gt;for&lt;/code&gt;, if set (or this component itself,
+              if it is a "non-simple" form element).
+              For accessibility reasons, this functionality is not supported
+              in screen reader mode.
+              If the same access key appears in multiple locations in the
+              same page of output, the rendering user agent will cycle
+              among the elements accessed by the similar keys.
+              &lt;p&gt;
+                This attribute is sometimes referred to as the "mnemonic".
+                &lt;/p&gt;&lt;/html&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
+          "showRequired" attribute must be false for the visual indication not to be displayed.</description>
+      <name>showRequired</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a boolean value that controls whether the component
+provides label and message support;  when set to "true", the component will
+not display messaging support or the label (these attributes may be ignored: label,
+labelAndAccessKey, accessKey,  showRequired,
+tip), and may use simpler layout primitives</description>
+      <name>simple</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the label for an additional item that indicates no selection has
+been made.  When the user selects this item, "required" validation will
+not pass, or a null value will be set if the component is not "required".</description>
+      <name>unselectedLabel</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the values are passed through to
+        the client. When valuePassThru is false
+        the value and the options' values
+        are converted to indexes before being sent to the client.
+        Therefore, when valuePassThru is false,
+        there is no need to write your own converter when you are using custom Objects
+        as your values and/or options.
+        If you need to know the actual values on the client-side, then you can set
+        valuePassThru to true. This will pass the values through to the client,
+        using your custom converter if it is available; a custom converter is
+        needed if you are using custom objects. The default is false.</description>
+      <name>valuePassThru</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the control displays the buttons
+              horizontally or vertically.The valid values are "horizontal" and
+              "vertical", the default being "vertical".</description>
+      <name>layout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the bean.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ An attribute that will simultaneously set both the "value"
+              and "accessKey" attributes from a single value, using
+              conventional ampersand ('&amp;amp;') notation.
+              &lt;p&gt;
+              For example, setting this attribute to "L&amp;amp;amp;abel" will
+              set the label to "Label" and the access key to 'a'.
+              &lt;/p&gt;&lt;/html&gt;</description>
+      <name>labelAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".</description>
+      <name>contentStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The selectOrderShuttle component provides a mechanism for selecting
+   multiple values from a list of values by allowing the user to move
+   items between two lists, and reordering that list of values.</description>
+    <tag-name>selectOrderShuttle</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectOrderShuttle</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Shuttle</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the header of the leading list of the shuttle.</description>
+      <name>leadingHeader</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a validator method</description>
+      <name>validator</name>
+      <method-signature>void myMethod(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether or not the leading list has an area to display descriptions.</description>
+      <name>leadingDescShown</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether or not the trailing list has an area to display descriptions.</description>
+      <name>trailingDescShown</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a value change listener</description>
+      <name>valueChangeListener</name>
+      <method-signature>void myMethod(javax.faces.event.ValueChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether or not the values are passed through to
+        the client. When valuePassThru is false
+        the value and the options' values
+        are converted to indexes before being sent to the client.
+        Therefore, when valuePassThru is false,
+        there is no need to write your own converter when you are using custom Objects
+        as your values and/or options.
+        If you need to know the actual values on the client-side, then you can set
+        valuePassThru to true. This will pass the values through to the client,
+        using your custom converter if it is available; a custom converter is
+        needed if you are using custom objects. The default is false.</description>
+      <name>valuePassThru</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a converter object</description>
+      <name>converter</name>
+      <type>javax.faces.convert.Converter</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component losing the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onblur</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the value of the component.  If the EL binding
+for the "value" points to a bean property with a getter but no setter, and
+this is an editable component, the component will be rendered 
+in read-only mode.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>whether the shuttle is in "reorder only" mode, where the user can reorder the list of values, but cannot add or remove them.</description>
+      <name>reorderOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether a non-null, non-empty value must be entered.  If false, validators will not be executed when the value is null or empty.</description>
+      <name>required</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the header of the trailing list of the shuttle.</description>
+      <name>trailingHeader</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the message to be displayed, if 'required' validation fails.
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>requiredMessageDetail</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label for the shuttle that is used to identify the component only when displaying error messages. The label specified does not otherwise appear on the page.</description>
+      <name>label</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the event handler for the component gaining the focus.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.</description>
+      <name>onfocus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>event handler for when the value is changed.</description>
+      <name>onchange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the display size(number of items) of the lists. The size
+              specified must be between 10 and 20 items. If the attribute is not
+              set or has a value less than 10, the size would have a default or
+              minimum value of 10. If the attribute value specified is more than
+              20 items, the size would have the maximum value of 20.</description>
+      <name>size</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the value is converted and validated immediately in the Apply Request Values phase, or is handled in the Process Validators phase, the default.  By default, values are converted and validated together in the Process Validators phase.  However, if you need access to the value of a component during Apply Request Values - for example, if you need to get the value from an actionListener on an immediate commandButton - then setting this to "immediate" makes that possible.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is read-only.</description>
+      <name>readOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the element is disabled.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>SelectRangeChoiceBar is used to allow the user to select a range of
+          records to display among a larger set of records.
+          It allows the user to move back and forth through these records
+          through a choice and buttons.</description>
+    <tag-name>selectRangeChoiceBar</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSelectRangeChoiceBar</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.ChoiceBar</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the name of the EL variable that provides access to the "start"
+              and "end" variables that point to the start and end row in
+              the each range from the data model. This can be used to customize
+              the range text.</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt; the data model being used by this component.
+The specific model class is
+        &lt;code&gt;org.apache.myfaces.trinidad.model.CollectionModel&lt;/code&gt;.
+
+        You may also use other model instances, e.g.,  
+        &lt;code&gt;java.util.List&lt;/code&gt;  ,
+        array, and  &lt;code&gt;javax.faces.model.DataModel&lt;/code&gt;.
+        This component will automatically convert the instance
+        into a &lt;code&gt;CollectionModel&lt;/code&gt;.&lt;/html&gt;</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a rangeChange listener that
+         will be called when a new range is selected.</description>
+      <name>rangeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.RangeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the maximum number of rows to display in a single range of rows.
+Some ranges might have fewer
+than the number of rows specified by this attribute (eg: the last range
+might have an insufficient number of rows).
+To display all rows at once, set this attribute to 0.</description>
+      <name>rows</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation 
+          should be skipped when range change
+          events are generated by this component.
+
+          When immediate is false (the default), events will
+          be delivered during the Invoke Application phase, which
+          will trigger validation.  When set to true,  events
+          will be executed during the Apply Request Values phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the index of the first row in the currently range of rows.
+This index is zero-based. This attribute is used to control
+which range of rows to display to the user.</description>
+      <name>first</name>
+      <type>int</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The separator is used anywhere to create a horizontal separator
+between items.</description>
+    <tag-name>separator</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSeparator</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Separator</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The showDetail provides a means of toggling a group of components between being
+hidden or shown.  If the "prompt" facet is present, the component in the facet
+will be put next to the disclosure icon.  If the prompt facet is not present
+but either the disclosedText or the undisclosedText attributes are set, then
+the text in that attribute will be displayed next to the disclosure icon.
+If the prompt facet is not set but both the disclosedText and undisclosedText
+attributes are set then the disclosedText will be displayed when disclosed="true"
+and undisclosedText will be displayed when disclosed="false".  If the prompt
+facet is not set and neither the disclosedText or undisclosedText attributes are
+set, then the label will default to "Hide" for the disclosed text and "Show" for
+the undisclosed text.  For the purposes of EL, setting disclosedText or
+undisclosedText to null is the same as not setting the value.</description>
+    <tag-name>showDetail</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreShowDetail</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.ShowDetail</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the text to display when the children are undisclosed.  If this attribute is set
+and the disclosedText attribute is not set, this text will be displayed for
+both the disclosed state AND the undisclosed state.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>undisclosedText</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the text to display when the children are disclosed.  If this attribute is set
+and the undisclosedText attribute is not set, this text will be displayed for
+both the disclosed state AND the undisclosed state.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>disclosedText</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>stops the local value of disclosed from being set
+        by renderers. This allows the value to always be taken from the value of the disclosed
+        value expression. Disclosed values must be updated in other ways (i.e. from a
+        disclosure listener)
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>disclosedTransient</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation - client-side or
+            server-side - should be skipped when
+          events are generated by this component.
+
+          When immediate is false (the default), the disclosure event will
+          be delivered during the Invoke Application phase, which
+          will trigger validation.  When set to true, the disclosure
+          event will be executed during the Apply Request Values phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether or not to disclose the children
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>disclosed</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a disclosure listener</description>
+      <name>disclosureListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.DisclosureEvent)</method-signature>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The showDetailHeader provides a means of toggling the contents under a header
+between being disclosed(shown) or undisclosed(hidden).</description>
+    <tag-name>showDetailHeader</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreShowDetailHeader</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Header</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>stops the local value of disclosed from being set
+        by renderers. This allows the value to always be taken from the value of the disclosed
+        value expression. Disclosed values must be updated in other ways (i.e. from a
+        disclosure listener)
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>disclosedTransient</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the URI for the icon of the header.</description>
+      <name>icon</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the label of the header.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Set if an error, info, confirmation, or warning header is needed.</description>
+      <name>messageType</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Size of this panelHeader. The largest is 0 and corresponds to an H1 header
+        the smallest is 5 and corresponds to an H6 Header.  Note that this version of the tag will 
+        display all sizes above 2 the same as size 2. Setting the size to a negative number will
+        allow the header to be calculated according to its parent header.  The default value for 
+        this property is -1.</description>
+      <name>size</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation - client-side or
+            server-side - should be skipped when
+          events are generated by this component.
+
+          When immediate is false (the default), the disclosure event will
+          be delivered during the Invoke Application phase, which
+          will trigger validation.  When set to true, the disclosure
+          event will be executed during the Apply Request Values phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether or not to disclose the children
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>disclosed</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a disclosure listener</description>
+      <name>disclosureListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.DisclosureEvent)</method-signature>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The showDetailItem represents a single item with specific
+contents that can be selected by users to be shown in a showOne component.</description>
+    <tag-name>showDetailItem</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreShowDetailItem</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Item</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>Character used to gain quick access to this showDetailItem.
+For accessibility reasons, this functionality is not supported
+in screen reader mode.
+&lt;p&gt;
+  If the same access key appears in multiple locations in the
+  same page of output, the rendering user agent will cycle
+  among the elements accessed by the similar keys.
+&lt;/p&gt;
+&lt;p&gt;
+  This attribute is sometimes referred to as the "mnemonic".
+&lt;/p&gt;</description>
+      <name>accessKey</name>
+      <type>char</type>
+    </attribute>
+    <attribute>
+      <description>An attribute that will simultaneously set both the "text"
+and "accessKey" attributes from a single value, using
+conventional ampersand ('&amp;amp;') notation.
+&lt;p&gt;
+  For example, setting this attribute to "T&amp;amp;amp;ext" will
+  set the text to "Text" and the access key to 'e'.
+&lt;/p&gt;</description>
+      <name>textAndAccessKey</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>stops the local value of disclosed from being set
+        by renderers. This allows the value to always be taken from the value of the disclosed
+        value expression. Disclosed values must be updated in other ways (i.e. from a
+        disclosure listener)
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>disclosedTransient</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the textual label of the showDetailItem.</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>A non-negative integer that indicates the flexibility of this
+component in its container.  If the container supports it, flex
+is used to determine how space is distributed among its children.
+Components with larger flex values will be made larger than
+components with lower flex values.  This is done so at the ratio
+determined by the flex of each of the two components.  The actual
+value is only relevant if there are other flexible components
+(components with flex values larger than zero) within the same
+container.</description>
+      <name>flex</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether data validation - client-side or
+            server-side - should be skipped when
+          events are generated by this component.
+
+          When immediate is false (the default), the disclosure event will
+          be delivered during the Invoke Application phase, which
+          will trigger validation.  When set to true, the disclosure
+          event will be executed during the Apply Request Values phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether or not to disclose the children
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>disclosed</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a disclosure listener</description>
+      <name>disclosureListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.DisclosureEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If value is "true", the component becomes non-interactive.
+Otherwise,the default value is "false" and component assumes
+its expected behavior.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>SingleStepButtonBar renders a Previous button,
+         text describing the current step and the maximum steps, and a Next button.</description>
+    <tag-name>singleStepButtonBar</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSingleStepButtonBar</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.ButtonBar</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to an action listener 
+             that will be called when the singleStep component navigates
+             to the previous step.</description>
+      <name>previousActionListener</name>
+      <method-signature>void myMethod(javax.faces.event.ActionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a reference to an action method  
+             that will be called when the singleStep component navigates
+             to the next step, or the static outcome of the action.</description>
+      <name>nextAction</name>
+      <method-signature>java.lang.String myMethod()</method-signature>
+    </attribute>
+    <attribute>
+      <description>the last possible step. If this value is not known, 
+              it should be set to
+              MAX_VALUE_UNKNOWN (-1),
+              which is also the default value. If maxStep is
+              MAX_VALUE_UNKNOWN, then no text is rendered between the Back/Next
+              buttons. When maxStep is 2 and selectedStep
+              is 1, then only a Continue button is rendered.</description>
+      <name>maxStep</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>a reference to an action method  
+             that will be called when the singleStep component navigates
+             to the previous step, or the static outcome of the action.</description>
+      <name>previousAction</name>
+      <method-signature>java.lang.String myMethod()</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an action listener  
+             that will be called when the singleStep component navigates
+             to the next step.</description>
+      <name>nextActionListener</name>
+      <method-signature>void myMethod(javax.faces.event.ActionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the text description of items being navigated.
+            The default is "Step".</description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the current step. The valid range is 1 to maxStep.
+              It defaults to 1.</description>
+      <name>selectedStep</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>spacers occupy a fixed amount of
+          space in a layout.</description>
+    <tag-name>spacer</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSpacer</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Spacer</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>the height of the spacer item.</description>
+      <name>height</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the width of the spacer item.</description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>the short description of the bean.  This text
+         is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The statusIndicator component shows whether the page
+               is busy processing or is ready. By default, the component
+               shows predefined icons for both readyand busy state. However,
+               if a facet is specified, be it rendered or not, none of the
+               default icon is going to be rendered. That behavior enable an
+               easy emulation of GMail behavior specifying only a busy
+               facet.</description>
+    <tag-name>statusIndicator</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreStatusIndicator</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.StatusIndicator</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The subform tag represents an independently submittable
+region of a page.  The contents of a subform will only be validated
+(or otherwise processed) if a component inside of the subform is
+responsible for submitting the page or if the default attribute is set to true.</description>
+    <tag-name>subform</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreSubform</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Subform</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>whether the subform should assume it
+has been submitted.  When set to "true", "submitted" will be
+considered true if no other subform has been submitted.</description>
+      <name>default</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The Trinidad Table is used to display tabular data. It also supports selection (both single and multiple), sorting, record navigation and detail-disclosure.</description>
+    <tag-name>table</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreTable</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Table</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the summary of this table's purpose and structure
+         for user agents rendering to non-visual media.</description>
+      <name>summary</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether or not to enable the show/hide all
+              links above the table,
+              which allow the user to show/hide all the detail rows.
+              To enable the detail rows, a "detailStamp" facet must be set on
+              this Table.
+
+    This attribute is not supported on the following agent types:
+ phone, voice.</description>
+      <name>allDetailsEnabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the interval between which the column banding alternates.  For example, a columnBandingInterval of 1 would display alternately banded columns.</description>
+      <name>columnBandingInterval</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>text displayed when a table is empty.</description>
+      <name>emptyText</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a selection listener</description>
+      <name>selectionListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.SelectionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).  This only takes effect if rowSelection attribute enabled.</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Sets a height to the content of the table. 
+        This generates a scrollbar to access all rows in the current range.</description>
+      <name>height</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>if the horizontal grid lines will be drawn.</description>
+      <name>horizontalGridVisible</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the data model being used by this component.
+The specific model class is
+        &lt;code&gt;org.apache.myfaces.trinidad.model.CollectionModel&lt;/code&gt;.
+
+        You may also use other model instances, e.g.,  
+        &lt;code&gt;java.util.List&lt;/code&gt;  ,
+        array, and  &lt;code&gt;javax.faces.model.DataModel&lt;/code&gt;.
+        This component will automatically convert the instance
+        into a &lt;code&gt;CollectionModel&lt;/code&gt;.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a rangeChange listener that
+         will be called when a new range is selected.</description>
+      <name>rangeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.RangeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether rows in this table selectable. Valid values are "none", "single", "multiple"</description>
+      <name>rowSelection</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the set of disclosed rows for this component.
+Each entry in the set is a rowKey.</description>
+      <name>disclosedRowKeys</name>
+      <type>org.apache.myfaces.trinidad.model.RowKeySet</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the width of the table.  The value must either be a number of pixels or a percentage - it is not a CSS width.</description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the maximum number of rows to display in a single range of rows.
+Some ranges might have fewer
+than the number of rows specified by this attribute (eg: the last range
+might have an insufficient number of rows).
+To display all rows at once, set this attribute to 0.
+The default is 25.</description>
+      <name>rows</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this 
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:
+          &lt;ul&gt;
+            &lt;li&gt;"model" - returns the CollectionModel for this component.&lt;/li&gt;
+            &lt;li&gt;"index" - returns the zero based row index.&lt;/li&gt;
+            &lt;li&gt;"hierarchicalIndex" - returns an array containing zero based row index.&lt;/li&gt;
+            &lt;li&gt;"hierarchicalLabel" - returns a string label representing 1 based index of this row.&lt;/li&gt;
+            &lt;li&gt;"rowKey" - returns the current rowKey in the collection.&lt;/li&gt;
+            &lt;li&gt;"current" - returns the current row in the collection.&lt;/li&gt;
+          &lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the interval between which the row banding alternates.  For example, rowBandingInterval=1 would displayalternately banded rows in the Grid.</description>
+      <name>rowBandingInterval</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>whether or not data validation - client-side or
+            server-side -
+          should take place when
+          events are generated by this component.
+
+          When immediate is true, the default ActionListener
+          provided by the JavaServer Faces implementation
+          should be executed during Apply Request Values phase
+          of the request processing lifecycle, rather than
+          waiting until the Invoke Application phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the selection state for this component.</description>
+      <name>selectedRowKeys</name>
+      <type>org.apache.myfaces.trinidad.model.RowKeySet</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an ExpansionListener</description>
+      <name>rowDisclosureListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.RowDisclosureEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>a method reference to a sort listener</description>
+      <name>sortListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.SortEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>if the vertical grid lines will be drawn.</description>
+      <name>verticalGridVisible</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the index of the first row in the currently range of rows.
+This index is zero-based. This attribute is used to control
+which range of rows to display to the user.</description>
+      <name>first</name>
+      <type>int</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Train is a UIXProcess component that renders a train.
+          A train is a horizontal series of train stations connected by
+          a horizontal line. Each train station
+          is an image and text describing the page in the multi-page process.</description>
+    <tag-name>train</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreTrain</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Train</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this 
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:&lt;ul&gt;&lt;li&gt;"model" - returns the CollectionModel for this component&lt;/li&gt;&lt;li&gt;"index" - returns the zero based row index&lt;/li&gt;&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the hierarchy of data - must be of type 
+            org.apache.myfaces.trinidad.model.MenuModel</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Represents an interactive tree component.</description>
+    <tag-name>tree</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreTree</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Tree</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the rowKey of the currently focused row.
+        The rowKeys of the ancestor rows of the focus row are added
+        to the expandedRowKeys RowKeySet by default.</description>
+      <name>focusRowKey</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a focus listener</description>
+      <name>focusListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.FocusEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>If upon initial rendering, the current subtree under the focused row path
+        should be expanded. A RowDisclosureEvent is broadcast from the encode begin of the 
+        component so that listeners are properly notified of the disclosure.</description>
+      <name>initiallyExpanded</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a selection listener</description>
+      <name>selectionListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.SelectionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the hierarchy of tree data - must be of type 
+        org.apache.myfaces.trinidad.model.TreeModel</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>the set of disclosed rows for this component.
+Each entry in the set is a rowKey.</description>
+      <name>disclosedRowKeys</name>
+      <type>org.apache.myfaces.trinidad.model.RowKeySet</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+          Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this 
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:
+          &lt;ul&gt;
+          &lt;li&gt;"model" - returns the CollectionModel for this component&lt;/li&gt;
+          &lt;li&gt;"index" - returns the zero based row index&lt;/li&gt;
+          &lt;li&gt;"hierarchicalIndex" - returns an array containing the row indices of heirarchy of the currrent row, for e.g. [0,1,2]
+              Please use this attribute with caution since it requires moving currency to calculate the row index for 
+              each parent collection in the tree hierarchy.
+          &lt;/li&gt;
+          &lt;li&gt;"hierarchicalLabel" - returns a string label representing the hierarchy of that row, for e.g. 1.1, 1.1.1. 
+             It should be noted that the labels are 1 based vs 0 based for rowIndex. 
+            Please use this attribute with caution since it requires moving currency to calculate the row index for 
+              each parent collection in the tree hierarchy.
+          &lt;/li&gt;
+          &lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether or not data validation - client-side or
+            server-side -
+          should take place when
+          events are generated by this component.
+
+          When immediate is true, the default ActionListener
+          provided by the JavaServer Faces implementation
+          should be executed during Apply Request Values phase
+          of the request processing lifecycle, rather than
+          waiting until the Invoke Application phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the selection state for this component.</description>
+      <name>selectedRowKeys</name>
+      <type>org.apache.myfaces.trinidad.model.RowKeySet</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an ExpansionListener</description>
+      <name>rowDisclosureListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.RowDisclosureEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The Trinidad TreeTable is used to display data that is structured in a hierarchical format.</description>
+    <tag-name>treeTable</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreTreeTable</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.TreeTable</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the summary of this table's purpose and structure
+         for user agents rendering to non-visual media.</description>
+      <name>summary</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the maximum number of records that can be displayed at
+              one time (range size).
+              Each level of depth in the tree can have a different range size.
+              The first number in the array sets the range size for the root
+              collection. Each subsequent number sets the range size for the
+              corresponding depth. The last number becomes the default for
+              each subsequent level of depth.
+
+              If a node has more children than
+              the range size, navigation rows will be rendered above and
+              below the child nodes.</description>
+      <name>rowsByDepth</name>
+      <type>int[]</type>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the rowKey of the currently focused row.
+        The rowKeys of the ancestor rows of the focus row are added
+        to the expandedRowKeys RowKeySet by default.</description>
+      <name>focusRowKey</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a focus listener</description>
+      <name>focusListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.FocusEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>the interval between which the column banding alternates.  For example, a columnBandingInterval of 1 would display alternately banded columns.</description>
+      <name>columnBandingInterval</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>text displayed when a table is empty.</description>
+      <name>emptyText</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a selection listener</description>
+      <name>selectionListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.SelectionEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If upon initial rendering, the current subtree under the focused row path
+        should be expanded. A RowDisclosureEvent is broadcast from the encode begin of the 
+        component so that listeners are properly notified of the disclosure.</description>
+      <name>initiallyExpanded</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>If set to TRUE on a form element, the component will automatically submit
+     the enclosing form when an appropriate action takes place (a click, text
+     change, etc.).  This only takes effect if rowSelection attribute enabled.</description>
+      <name>autoSubmit</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Sets a height to the content of the table. 
+        This generates a scrollbar to access all rows in the current range.</description>
+      <name>height</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>if the horizontal grid lines will be drawn.</description>
+      <name>horizontalGridVisible</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseup Javascript handler.</description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the hierarchy of tree data - must be of type 
+        org.apache.myfaces.trinidad.model.TreeModel</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to a rangeChange listener that
+         will be called when a new range is selected.</description>
+      <name>rangeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.RangeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>If the root node should be rendered or not. Defaults to true.</description>
+      <name>rootNodeRendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Whether the Expand All, Collapse All links should be rendered.</description>
+      <name>expandAllEnabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmousemove Javascript handler.</description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether rows in this table selectable. Valid values are "none", "single", "multiple"</description>
+      <name>rowSelection</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the set of disclosed rows for this component.
+Each entry in the set is a rowKey.</description>
+      <name>disclosedRowKeys</name>
+      <type>org.apache.myfaces.trinidad.model.RowKeySet</type>
+    </attribute>
+    <attribute>
+      <description>the IDs of the components that should trigger a partial update.
+        &lt;p&gt;
+        This component will listen on the trigger components. If one of the
+        trigger components receives an event that will cause it to update
+        in some way, this component will request to be updated too.&lt;/p&gt;
+        &lt;p&gt;
+        Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
+        &lt;/p&gt;
+        &lt;p&gt;
+        Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
+        or use multiple colons to move up through the NamingContainer. For example,
+        "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
+        ":::" will pop out of two naming containers, etc. The search for
+        the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
+        component with id = commandButton1 after popping out of two naming containers relative to this component.
+        To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".&lt;/p&gt;</description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>an ondblclick Javascript handler.</description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the CSS styles to use for this component.</description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseout Javascript handler.</description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a CSS style class to use for this component.</description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the width of the table.  The value must either be a number of pixels or a percentage - it is not a CSS width.</description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeyup Javascript handler.</description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeydown Javascript handler.</description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onkeypress Javascript handler.</description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>The short description of the component. This text is commonly used by user agents to display tooltip help text.</description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>an onmouseover Javascript handler.</description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+          Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this 
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:
+          &lt;ul&gt;
+          &lt;li&gt;"model" - returns the CollectionModel for this component&lt;/li&gt;
+          &lt;li&gt;"index" - returns the zero based row index&lt;/li&gt;
+          &lt;li&gt;"hierarchicalIndex" - returns an array containing the row indices of heirarchy of the currrent row, for e.g. [0,1,2]
+              Please use this attribute with caution since it requires moving currency to calculate the row index for 
+              each parent collection in the tree hierarchy.
+          &lt;/li&gt;
+          &lt;li&gt;"hierarchicalLabel" - returns a string label representing the hierarchy of that row, for e.g. 1.1, 1.1.1. 
+             It should be noted that the labels are 1 based vs 0 based for rowIndex. 
+            Please use this attribute with caution since it requires moving currency to calculate the row index for 
+              each parent collection in the tree hierarchy.
+          &lt;/li&gt;
+          &lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the interval between which the row banding alternates.  For example, rowBandingInterval=1 would displayalternately banded rows in the Grid.</description>
+      <name>rowBandingInterval</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>whether or not data validation - client-side or
+            server-side -
+          should take place when
+          events are generated by this component.
+
+          When immediate is true, the default ActionListener
+          provided by the JavaServer Faces implementation
+          should be executed during Apply Request Values phase
+          of the request processing lifecycle, rather than
+          waiting until the Invoke Application phase.</description>
+      <name>immediate</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the selection state for this component.</description>
+      <name>selectedRowKeys</name>
+      <type>org.apache.myfaces.trinidad.model.RowKeySet</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an ExpansionListener</description>
+      <name>rowDisclosureListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.RowDisclosureEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>an onclick Javascript handler.</description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an onmousedown Javascript handler.</description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>if the vertical grid lines will be drawn.</description>
+      <name>verticalGridVisible</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The group component is an invisible control that aggregates semantically-related children; the group itself has no associated client representation (visual or API).
+Some parent components may have special representation for groups like adding separators around the group but this is a special case and is not always rendered this way.
+In most cases, only the children of the group will be rendered directly to the page.
+There will be no layout applied to the children so the natural layout behavior of the underlying HTML elements will apply.
+If you require a more predictable layout, you should use a layout component such as panelGroupLayout.</description>
+    <tag-name>group</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.Group</component-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+          a title value for the group. Whether anything is done with this title value is up to the 
+          group's parent component.
+        &lt;/html&gt;</description>
+      <name>title</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+          indicates if a visual group end boundary is desired. The default value of 'dontCare' 
+          indicates no preference. A value of 'show' indicates a preference to show an end boundary.
+          A value of 'hide' indicates a preference to not show an end boundary. Regardless of the 
+          end boundary value, whether a visual boundary will be displayed is up to the group's 
+          parent component.
+        &lt;/html&gt;</description>
+      <name>endBoundary</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+          indicates if a visual group start boundary is desired. The default value of 'dontCare' 
+          indicates no preference. A value of 'show' indicates a preference to show a start boundary.
+          A value of 'hide' indicates a preference to not show a start boundary. Regardless of the 
+          start boundary value, whether a visual boundary will be displayed is up to the group's 
+          parent component.
+        &lt;/html&gt;</description>
+      <name>startBoundary</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>UIXIterator is a component that performs iteration
+over its child components.  It is like a UIXTable without any chrome.
+While functionally similar to a forEach tag, an iterator is a component
+that does its processing during rendering, while forEach runs during
+the assembly of the component tree, and doesn't leave behind a component in the
+heirarchy.</description>
+    <tag-name>iterator</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.Iterator</component-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;
+ Name of the EL variable used to reference the varStatus information.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).
+          The VarStatus provides contextual information about the state of the
+          component to EL expressions. For components that iterate, varStatus
+          also provides loop counter information.  Please see the this 
+          component's documentation for the specific properties on the varStatus.
+          The common properties on varStatus include:
+          &lt;ul&gt;
+            &lt;li&gt;"model" - returns the CollectionModel for this component.&lt;/li&gt;
+            &lt;li&gt;"index" - returns the zero based row index.&lt;/li&gt;
+            &lt;li&gt;"hierarchicalIndex" - returns an array containing zero based row index.&lt;/li&gt;
+            &lt;li&gt;"hierarchicalLabel" - returns a string label representing 1 based index of this row.&lt;/li&gt;
+            &lt;li&gt;"rowKey" - returns the current rowKey in the collection.&lt;/li&gt;
+            &lt;li&gt;"current" - returns the current row in the collection.&lt;/li&gt;
+          &lt;/ul&gt;&lt;/html&gt;</description>
+      <name>varStatus</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Name of the EL variable used to reference each element of this collection.
+          Once this component has completed rendering, this variable is
+          removed (or reverted back to its previous value).</description>
+      <name>var</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the data model being used by this component.
+The specific model class is
+        &lt;code&gt;org.apache.myfaces.trinidad.model.CollectionModel&lt;/code&gt;.
+
+        You may also use other model instances, e.g.,  
+        &lt;code&gt;java.util.List&lt;/code&gt;  ,
+        array, and  &lt;code&gt;javax.faces.model.DataModel&lt;/code&gt;.
+        This component will automatically convert the instance
+        into a &lt;code&gt;CollectionModel&lt;/code&gt;.</description>
+      <name>value</name>
+      <type>java.lang.Object</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the index of the first row in the currently range of rows.
+This index is zero-based. This attribute is used to control
+which range of rows to display to the user.</description>
+      <name>first</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>the maximum number of rows to display in a single range of rows.
+Some ranges might have fewer
+than the number of rows specified by this attribute (eg: the last range
+might have an insufficient number of rows).
+To display all rows at once, set this attribute to 0.
+The default is 25.</description>
+      <name>rows</name>
+      <type>int</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>The switcher component dynamically decides which facet component
+should be rendered.</description>
+    <tag-name>switcher</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.Switcher</component-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description>a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+&lt;ul&gt;
+&lt;li&gt;They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).&lt;/li&gt;
+&lt;li&gt;Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).&lt;/li&gt;
+&lt;/ul&gt;&lt;/html&gt;</description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the name of the facet to render and process.</description>
+      <name>facetName</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>the name of the facet to render and process if "facetName"
+              is null or otherwise does not refer to an existing facet.</description>
+      <name>defaultFacet</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.</description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description>whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.</description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Validate the byte length of strings when encoded.</description>
+    <tag-name>validateByteLength</tag-name>
+    <validator>
+      <validator-id>org.apache.myfaces.trinidad.ByteLength</validator-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadValidatorHandler</handler-class>
+    </validator>
+    <attribute>
+      <description>the identifier for the validator</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>maximum number of allowable bytes when the string is encoded</description>
+      <name>maximum</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>the Java encoding used for the string.</description>
+      <name>encoding</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+              Custom error message to be used, for creating detail part of
+              faces message, when conversion fails for input that
+              exceeds the maximum byte length.
+             &lt;/p&gt;
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+               &lt;li&gt;
+                {1} value entered by the user
+               &lt;/li&gt;
+               &lt;li&gt;
+                {2} the maximum length
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;</description>
+      <name>messageDetailMaximum</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Validate that the date entered is within a given restriction.</description>
+    <tag-name>validateDateRestriction</tag-name>
+    <validator>
+      <validator-id>org.apache.myfaces.trinidad.DateRestriction</validator-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadValidatorHandler</handler-class>
+    </validator>
+    <attribute>
+      <description>the identifier for the validator</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Specify the month which are invalid for your use case.
+           The attribute takes a whitespace delimited list of months.
+           Possible values are jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.</description>
+      <name>invalidMonths</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>Specify the weekdays which are invalid for your use case.
+           The attribute takes whitespace delimited list of weekdays.
+           Possible values are sun, mon, tue, wed, thu, fri, sat.</description>
+      <name>invalidDaysOfWeek</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>To specifiy a concrete List of Dates, use the invalidDays attribute and wire it
+           to a DateListProvider implementation. This returns a list of dates, which are invalid.</description>
+      <name>invalidDays</name>
+      <type>org.apache.myfaces.trinidad.model.DateListProvider</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value exceeds the &lt;code&gt;invalidMonths&lt;/code&gt; value
+           set.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the invalid month
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailInvalidMonths</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value is less than the set &lt;code&gt;invalidDaysOfWeek&lt;/code&gt;
+           value.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the invalid weekday
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailInvalidDaysOfWeek</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value is less than the set &lt;code&gt;invalidDate&lt;/code&gt;
+           value.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the invalid date
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailInvalidDays</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Validate that the date entered is within a given range.</description>
+    <tag-name>validateDateTimeRange</tag-name>
+    <validator>
+      <validator-id>org.apache.myfaces.trinidad.DateTimeRange</validator-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadValidatorHandler</handler-class>
+    </validator>
+    <attribute>
+      <description>the identifier for the validator</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the maximum java.util.Date.
+           ISO 8601 date strings, of the form 'yyyy-MM-dd'
+           (for example 2004-06-22) is also allowed.
+           This will be parsed to date. When binding to Date objects, it is advised to create the Date object with 
+maximum value for any date-time components that aren't displayed (usually hours, minutes, seconds, milliseconds) 
+to allow the largest range of values to be accepted.</description>
+      <name>maximum</name>
+      <type>java.util.Date</type>
+    </attribute>
+    <attribute>
+      <description>The minimum java.util.Date.
+           ISO 8601 date strings, of the form 'yyyy-MM-dd'
+           (for example 2004-06-22) are also allowed.
+           This will be parsed to date. When binding to Date objects, it is advised to create the Date object with zeroed-out
+values for any date-time components that aren't displayed (usually hours, minutes, seconds, milliseconds)
+to allow the largest range of values to be accepted.]]</description>
+      <name>minimum</name>
+      <type>java.util.Date</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value exceeds the &lt;code&gt;maximum&lt;/code&gt; value
+           set.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the maximum allowed date
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailMaximum</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value is less than the set &lt;code&gt;minimum&lt;/code&gt;
+           value.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the minimum allowed date
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailMinimum</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           if input value is not with in the range, when
+           &lt;code&gt;minimum&lt;/code&gt; and &lt;code&gt;maximum&lt;/code&gt; is
+           set.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the minimum allowed date
+            &lt;/li&gt;
+            &lt;li&gt;
+             {3} the maximum allowed date
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailNotInRange</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Validate that the date entered is within a given range.</description>
+    <tag-name>validateDoubleRange</tag-name>
+    <validator>
+      <validator-id>org.apache.myfaces.trinidad.DoubleRange</validator-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadValidatorHandler</handler-class>
+    </validator>
+    <attribute>
+      <description>the identifier for the validator</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>The maximum double value of the entered value.</description>
+      <name>maximum</name>
+      <type>double</type>
+    </attribute>
+    <attribute>
+      <description>The minimum double value of the entered value..</description>
+      <name>minimum</name>
+      <type>double</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value exceeds the &lt;code&gt;maximum&lt;/code&gt; value
+           set.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the maximum allowed value
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailMaximum</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value is less than the set &lt;code&gt;minimum&lt;/code&gt;
+           value.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the minimum allowed value
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailMinimum</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           if input value is not with in the range, when
+           &lt;code&gt;minimum&lt;/code&gt; and &lt;code&gt;maximum&lt;/code&gt; is
+           set.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the minimum allowed value
+            &lt;/li&gt;
+            &lt;li&gt;
+             {3} the maximum allowed value
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailNotInRange</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Validate that the string entered is of a given length.</description>
+    <tag-name>validateLength</tag-name>
+    <validator>
+      <validator-id>org.apache.myfaces.trinidad.Length</validator-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadValidatorHandler</handler-class>
+    </validator>
+    <attribute>
+      <description>the identifier for the validator</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>the maximum length of the entered value.</description>
+      <name>maximum</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>the minimum length of the entered value.</description>
+      <name>minimum</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value exceeds the &lt;code&gt;maximum&lt;/code&gt; length
+           set.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the maximum allowed length
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailMaximum</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value is less than the set &lt;code&gt;minimum&lt;/code&gt;
+           length.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the minimum allowed length
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailMinimum</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           if input value is not of an acceptable length, when both
+           &lt;code&gt;minimum&lt;/code&gt; and &lt;code&gt;maximum&lt;/code&gt; are
+           set.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the minimum allowed length
+            &lt;/li&gt;
+            &lt;li&gt;
+             {3} the maximum allowed length
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailNotInRange</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           if input value is not of an acceptable length, when both
+           &lt;code&gt;minimum&lt;/code&gt; and &lt;code&gt;maximum&lt;/code&gt; are
+           set to the same value.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the allowed length
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailExact</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Validate that the date entered is within a given range.</description>
+    <tag-name>validateLongRange</tag-name>
+    <validator>
+      <validator-id>org.apache.myfaces.trinidad.LongRange</validator-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadValidatorHandler</handler-class>
+    </validator>
+    <attribute>
+      <description>the identifier for the validator</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>The maximum long value of the entered value.</description>
+      <name>maximum</name>
+      <type>long</type>
+    </attribute>
+    <attribute>
+      <description>The minimum long value of the entered value..</description>
+      <name>minimum</name>
+      <type>long</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value exceeds the &lt;code&gt;maximum&lt;/code&gt; value
+           set.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the maximum allowed value
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailMaximum</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           when input value is less than the set &lt;code&gt;minimum&lt;/code&gt;
+           value.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the minimum allowed value
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailMinimum</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+           The detail error message to be used for constructing faces messages,
+           if input value is not with in the range, when
+           &lt;code&gt;minimum&lt;/code&gt; and &lt;code&gt;maximum&lt;/code&gt; is
+           set.
+          &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+            &lt;li&gt;
+             {2} the minimum allowed value
+            &lt;/li&gt;
+            &lt;li&gt;
+             {3} the maximum allowed value
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;</description>
+      <name>messageDetailNotInRange</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Validate expression using Java regular expression syntax.
+    If you want to match a metacharacter in a pattern, escape it with \\.
+    E.g. to match [ your regular expression pattern would be \\[.</description>
+    <tag-name>validateRegExp</tag-name>
+    <validator>
+      <validator-id>org.apache.myfaces.trinidad.RegExp</validator-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadValidatorHandler</handler-class>
+    </validator>
+    <attribute>
+      <description>the identifier for the validator</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>pattern to be matched in the input value.</description>
+      <name>pattern</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;p&gt;
+              Custom error message to be used, for creating detail part of
+              faces message, when users input does not match the specified
+              pattern.
+             &lt;/p&gt;
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+               &lt;li&gt;
+                {1} value entered by the user
+               &lt;/li&gt;
+               &lt;li&gt;
+                {2} represents the 'pattern' expected in the input
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;</description>
+      <name>messageDetailNoMatch</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Converts an string, to and from java.awt.Color objects.</description>
+    <tag-name>convertColor</tag-name>
+    <converter>
+      <converter-id>org.apache.myfaces.trinidad.Color</converter-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadConverterHandler</handler-class>
+    </converter>
+    <attribute>
+      <description>the identifier for the converter</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>The set of acceptable patterns, as a whitespace sepa
+rated list.
+              The first pattern in the list will be used for formatting
+              java.awt.Color values.  All patterns will be tried in
+              order to convert Strings back into java.awt.Colors.
+              If no patterns are set, the default is "#RRGGBB r,g,b".</description>
+      <name>patterns</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should allow generation of a "
+transparent"
+color (a black color with an alpha of zero). The converter uses
+a String version of "transparent" that is translated for the
+user's locale.</description>
+      <name>transparentAllowed</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;&lt;p&gt;
+              Custom error message to be used, for creating detail part of
+              faces message, when users input does not match the specified
+              pattern.
+             &lt;/p&gt;
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+               &lt;li&gt;
+                {1} value entered by the user
+               &lt;/li&gt;
+               &lt;li&gt;
+                {2} the pattern the converter is expecting
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>messageDetailConvert</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Converts string into java.util.Date and vice versa based on the pattern
+          and style set.</description>
+    <tag-name>convertDateTime</tag-name>
+    <converter>
+      <converter-id>org.apache.myfaces.trinidad.DateTime</converter-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadConverterHandler</handler-class>
+    </converter>
+    <attribute>
+      <description>the identifier for the converter</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;&lt;p&gt;
+              Custom error message to be used, for creating detail part of
+              faces message, for values that cannot be converted to date when
+              the pattern / secondary pattern is set or when
+              &lt;code&gt;type&lt;/code&gt; is set to
+              &lt;code&gt;'date'&lt;/code&gt; and &lt;code&gt;pattern&lt;/code&gt;
+              is not set or is null.
+             &lt;/p&gt;
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+               &lt;li&gt;
+                {1} value entered by the user
+               &lt;/li&gt;
+               &lt;li&gt;
+                {2} an example of the format the converter is expecting
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>messageDetailConvertDate</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;&lt;p&gt;
+              Custom error message to be used, for creating detail part of
+              faces message, for time based value that cannot be converted
+              to date when &lt;code&gt;type&lt;/code&gt; is set to
+              &lt;code&gt;'time'&lt;/code&gt;, &lt;code&gt;pattern&lt;/code&gt; is
+              not set or is null
+             &lt;/p&gt;
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+               &lt;li&gt;
+                {1} value entered by the user
+               &lt;/li&gt;
+               &lt;li&gt;
+                {2} an example of the format the converter is expecting
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>messageDetailConvertTime</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;&lt;p&gt;
+              Custom error message to be used, for creating detail part of
+              faces message, for date-time based value that cannot be converted
+              to date when &lt;code&gt;type&lt;/code&gt; is set to
+              &lt;code&gt;'both'&lt;/code&gt; and &lt;code&gt;pattern&lt;/code&gt;
+              is not set or is null.
+             &lt;/p&gt;
+             &lt;p&gt;
+              &lt;strong&gt;
+               Parameters:
+              &lt;/strong&gt;
+              &lt;ul&gt;
+               &lt;li&gt;
+                {0} the label that identifies the component
+               &lt;/li&gt;
+               &lt;li&gt;
+                {1} value entered by the user
+               &lt;/li&gt;
+               &lt;li&gt;
+                {2} an example of the format the converter is expecting
+               &lt;/li&gt;
+              &lt;/ul&gt;
+             &lt;/p&gt;&lt;/html&gt;</description>
+      <name>messageDetailConvertBoth</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Predefined formatting style which determines how the date component
+               of a date string is to be formatted and parsed. Applied only if type
+               is "date" or "both". Valid values are "shortish", "short", "default",
+               "medium", "long", and "full". Default value is "shortish".</description>
+      <name>dateStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Locale whose predefined styles for dates and times are used during
+               formatting or parsing. If not specified or if null, the Locale returned by
+               FacesContext.getViewRoot().getLocale() will be used.</description>
+      <name>locale</name>
+      <type>java.util.Locale</type>
+    </attribute>
+    <attribute>
+      <description>Custom formatting pattern which determines how the date/time string
+              should be formatted and parsed.</description>
+      <name>pattern</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Second pattern, which will be used as a second attempt to parse a
+               string if the primary pattern or styles fail, but is never used for
+               formatting strings.</description>
+      <name>secondaryPattern</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Predefined formatting style which determines how the time component of
+               a date string is to be formatted and parsed. Applied only if type is
+               "time" or "both". Valid values are "default", "short", "medium",
+               "long", and "full". Default value is "short".</description>
+      <name>timeStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Time zone in which to interpret any time information in the date
+               string. If not set here, picks this value from
+               trinidad-config.xml configuration file. If not defined there, then
+               it is defaulted to the value returned by TimeZone.getDefault() which is usually the server JVM timezone.</description>
+      <name>timeZone</name>
+      <type>java.util.TimeZone</type>
+    </attribute>
+    <attribute>
+      <description>Specifies what contents the string value will be formatted to
+               include, or parsed. Valid values are "date", "time", and "both".
+               Default value is "date".</description>
+      <name>type</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description>Converts an string to a Number and vice versa based on the 'pattern' or the 'type' set.</description>
+    <tag-name>convertNumber</tag-name>
+    <converter>
+      <converter-id>org.apache.myfaces.trinidad.Number</converter-id>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadConverterHandler</handler-class>
+    </converter>
+    <attribute>
+      <description>the identifier for the converter</description>
+      <name>id</name>
+    </attribute>
+    <attribute>
+      <description>Whether the converter should be disabled, default to false.</description>
+      <name>disabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>The ISO 4217 currency code, applied only when formatting currencies.
+           Currency code can also be set for the entire application in trinidad-config.xml file.
+           If currency code is not set on the converter, and if set on
+           trinidad-config.xml configuration file it will be used by calling
+           &lt;code&gt;RequestContext().getCurrenctInstance().getCurrencyCode().&lt;/code&gt;
+           This currency code will be used during call to getAsString() for formatting,
+           provided type is set to 'currency'.</description>
+      <name>currencyCode</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;&lt;p&gt;
+          Custom error message to be used, for creating detail part of the
+          &lt;code&gt;FacesMessage&lt;/code&gt;, when
+          &lt;code&gt;value&lt;/code&gt; cannot be converted to a number, when
+          &lt;code&gt;type&lt;/code&gt; is set to
+          &lt;code&gt;'currency'&lt;/code&gt; and &lt;code&gt;pattern&lt;/code&gt;
+          is null or not set.
+         &lt;/p&gt;
+          &lt;p&gt;
+           &lt;strong&gt;
+            Parameters:
+           &lt;/strong&gt;
+           &lt;ul&gt;
+            &lt;li&gt;
+             {0} the label that identifies the component
+            &lt;/li&gt;
+            &lt;li&gt;
+             {1} value entered by the user
+            &lt;/li&gt;
+           &lt;/ul&gt;
+          &lt;/p&gt;&lt;/html&gt;</description>
+      <name>messageDetailConvertCurrency</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;&lt;p&gt;
+          Custom error message to be used, for creating detail part of the
+          &lt;code&gt;FacesMessage&lt;/code&gt;, when
+          &lt;code&gt;value&lt;/code&gt; cannot be converted to a number, when
+          &lt;code&gt;type&lt;/code&gt; is set to &lt;code&gt;'number'&lt;/code&gt;
+          and &lt;code&gt;pattern&lt;/code&gt; is null or not set.
+         &lt;/p&gt;
+         &lt;p&gt;
+          &lt;strong&gt;
+           Parameters:
+          &lt;/strong&gt;
+          &lt;ul&gt;
+           &lt;li&gt;
+            {0} the label that identifies the component
+           &lt;/li&gt;
+           &lt;li&gt;
+            {1} value entered by the user
+           &lt;/li&gt;
+          &lt;/ul&gt;
+         &lt;/p&gt;&lt;/html&gt;</description>
+      <name>messageDetailConvertNumber</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;&lt;p&gt;
+          Custom error message to be used, for creating detail part of the
+          &lt;code&gt;FacesMessage&lt;/code&gt; message, when
+          &lt;code&gt;value&lt;/code&gt; cannot be converted to a number, based
+          on the &lt;code&gt;pattern&lt;/code&gt; set.
+         &lt;/p&gt;
+         &lt;p&gt;
+          &lt;strong&gt;
+           Parameters:
+          &lt;/strong&gt;
+          &lt;ul&gt;
+           &lt;li&gt;
+            {0} the label that identifies the component
+           &lt;/li&gt;
+           &lt;li&gt;
+            {1} value entered by the user
+           &lt;/li&gt;
+           &lt;li&gt;
+            {2} the specified conversion pattern
+           &lt;/li&gt;
+          &lt;/ul&gt;
+         &lt;/p&gt;&lt;/html&gt;</description>
+      <name>messageDetailConvertPattern</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>&lt;html&gt;&lt;p&gt;
+          Custom error message to be used, for creating detail part of the
+          &lt;code&gt;FacesMessage&lt;/code&gt;, when
+          &lt;code&gt;value&lt;/code&gt; cannot be converted to a number, when
+          &lt;code&gt;type&lt;/code&gt; is set to
+          &lt;code&gt;'percent'&lt;/code&gt; and &lt;code&gt;pattern&lt;/code&gt;
+          is null or not set.
+         &lt;/p&gt;
+         &lt;p&gt;
+          &lt;strong&gt;
+           Parameters:
+          &lt;/strong&gt;
+          &lt;ul&gt;
+           &lt;li&gt;
+            {0} the label that identifies the component
+           &lt;/li&gt;
+           &lt;li&gt;
+            {1} value entered by the user
+           &lt;/li&gt;
+          &lt;/ul&gt;
+         &lt;/p&gt;&lt;/html&gt;</description>
+      <name>messageDetailConvertPercent</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Currency symbol, is applied only when formatting currencies.
+          If currency code is set then symbol will be ignored.</description>
+      <name>currencySymbol</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Flag specifying whether formatted output will contain grouping separators.
+          Default value is true.</description>
+      <name>groupingUsed</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Flag specifying whether only the integer part of the value will be formatted
+           and parsed. Default value is false.</description>
+      <name>integerOnly</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description>Locale whose predefined styles for numbers are used during formatting and parsing.
+          If not specified, the Locale returned by FacesContext.getViewRoot().getLocale()
+          will be used.</description>
+      <name>locale</name>
+      <type>java.util.Locale</type>
+    </attribute>
+    <attribute>
+      <description>Maximum number of digits that will be formatted in the fractional portion of the
+          output.</description>
+      <name>maxFractionDigits</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>Maximum number of digits that will be formatted in the integer portion of the
+          output.</description>
+      <name>maxIntegerDigits</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>Minimum number of digits that will be formatted in the fractional portion of
+           the output.</description>
+      <name>minFractionDigits</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>Minimum number of digits that will be formatted in the integer portion of the
+          output.</description>
+      <name>minIntegerDigits</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the negative prefix, to be applied only when formatting negative numbers. 
+        Negative prefix specified through this attribute will override any negative prefix implied using the pattern attribute</description>
+      <name>negativePrefix</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Specifies the negative suffix, to be applied only when formatting negative numbers.
+        Negative suffix specified through this attribute will override any negative suffix implied using the pattern attribute</description>
+      <name>negativeSuffix</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Custom formatting pattern which determins how the number string should be
+          formatted and parsed.</description>
+      <name>pattern</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description>Sets the default RoundingMode for the converter. If unset, uses JDK default (usually RoundingMode.HALF_EVEN).</description>
+      <name>roundingMode</name>
+      <type>java.math.RoundingMode</type>
+    </attribute>
+    <attribute>
+      <description>Specifies how the number string will be formatted and parsed.
+           Valid values are "number", "currency", and "percent".
+           Default value is "number".</description>
+      <name>type</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+</facelet-taglib>
\ No newline at end of file
diff --git a/trinidad-impl/src/main/resources/META-INF/trh.taglib.xml b/trinidad-impl/src/main/resources/META-INF/trh.taglib.xml
new file mode 100644
index 0000000..cfbb9a6
--- /dev/null
+++ b/trinidad-impl/src/main/resources/META-INF/trh.taglib.xml
@@ -0,0 +1,1155 @@
+<?xml version="1.0"?>
+<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd" version="2.0">
+  
+  <namespace>http://myfaces.apache.org/trinidad/html</namespace>
+  <tag>
+    <description><![CDATA[The styleSheet tag generates the style
+          sheet link reference to a generated Apache Trinidad style sheet.
+          This is automatically included for you if you use the Trinidad head tag.]]></description>
+    <tag-name>styleSheet</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.CoreStyleSheet</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.StyleSheet</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[Tag for the HTML body element.]]></description>
+    <tag-name>body</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlBody</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Body</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the id of the component to which you want the
+        focus to be when the full page renders. The accessibility-mode
+        must be set to "inaccessible" for this feature to be on.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.]]></description>
+      <name>initialFocusId</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmousemove Javascript handler.]]></description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.]]></description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an ondblclick Javascript handler.]]></description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the inline CSS style for this element]]></description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseout Javascript handler.]]></description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onunload Javascript handler.]]></description>
+      <name>onunload</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the CSS style class of the bean.]]></description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeyup Javascript handler.]]></description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeydown Javascript handler.]]></description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeypress Javascript handler.]]></description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the short description of the bean.  This text
+         is commonly used by user agents to display tooltip help text.]]></description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseover Javascript handler.]]></description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onload Javascript handler.]]></description>
+      <name>onload</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseup Javascript handler.]]></description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onclick Javascript handler.]]></description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmousedown Javascript handler.]]></description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether or not Trinidad will allow the first click to go
+             through in certain instances. When a PPR event occurs, we block
+             all subsequent user input until it completes. However, there may
+             be instances where the client wants to receive the very first
+             click. For example, if the user entered text in an inputText
+             that fires a PPR request, then the user immediately clicked
+             a submit button two events will be triggered - an onchange
+             followed by an onclick. The onchange will trigger the client
+             action which will immediately start the PPR blocking, so the
+             onclick will get consumed by the blocking code and no submit will
+             occur. Setting this value to true will allow the click to go
+             through.
+
+    This attribute is not supported on the following agent types:
+ pda, phone, voice.]]></description>
+      <name>firstClickPassed</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[CellFormat components are used to format cells in a
+          rowLayout component.]]></description>
+    <tag-name>cellFormat</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlCellFormat</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.CellFormat</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[Indicates which table cells are the headers for this cell. This
+             attribute is used by screen readers to associate header
+             information with data cells. This must be set to a
+             space-separated list of IDs. Each ID must be the ID of a
+             pertinent header cell.]]></description>
+      <name>headers</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the preferred height of the enclosed layout elements.]]></description>
+      <name>height</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseup Javascript handler.]]></description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether automatic text wrapping should be disabled for
+              this cell.]]></description>
+      <name>wrappingDisabled</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the number of cells high the child layout element will be.]]></description>
+      <name>rowSpan</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the number of cells wide the child layout element will be.]]></description>
+      <name>columnSpan</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmousemove Javascript handler.]]></description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the horizontal alignment of the grid row elements.
+              The acceptable values are "center", "left", "right", "start", and "end".]]></description>
+      <name>halign</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.]]></description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an ondblclick Javascript handler.]]></description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the inline CSS style for this element]]></description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseout Javascript handler.]]></description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the CSS style class of the bean.]]></description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the preferred width of the enclosed layout elements.]]></description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeyup Javascript handler.]]></description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeydown Javascript handler.]]></description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeypress Javascript handler.]]></description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the short description of the bean.  This text
+         is commonly used by user agents to display tooltip help text.]]></description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[Indicates whether or not this table cell is a header cell or a data cell.
+        Setting this attribute to 'true' will mark this cell as a header cell.]]></description>
+      <name>header</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseover Javascript handler.]]></description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[This attribute should be used to provide an abbreviated form of
+             the cell's content, and may be rendered by user agents when
+             appropriate in place of the cell's content. Abbreviated names
+             should be short since user agents may render them repeatedly
+             (especially if this cell is a header cell).]]></description>
+      <name>shortText</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onclick Javascript handler.]]></description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmousedown Javascript handler.]]></description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the vertical alignment of the grid row elements.
+              The acceptable values are "middle", "top", and "bottom".]]></description>
+      <name>valign</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[The frame component is used to specify attributes needed by an
+          HTML frame.]]></description>
+    <tag-name>frame</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlFrame</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Frame</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.]]></description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the inline CSS style for this element]]></description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the CSS style class of the bean.]]></description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the proposed width of this frame
+              This can be in pixels or percentage. This attribute is used only if this
+              frame is a left/right facet of a frameBorderLayout component.]]></description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the width of the frame margin. The value must be greater than zero (pixels).]]></description>
+      <name>marginHeight</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the short description of the bean.  This text
+         is commonly used by user agents to display tooltip help text.]]></description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the proposed height of this frame.
+              This can be in pixels or percentage. This attribute is used only if this
+              frame is a top/bottom facet of a frameBorderLayout component.]]></description>
+      <name>height</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html> This attribute specifies a link to a long description of the
+             frame. This description should supplement the short description
+             provided using the <code>shortDesc</code> attribute, and
+             may be particularly useful for non-visual user agents.</html>]]></description>
+      <name>longDescURL</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the URI for the source of this frame]]></description>
+      <name>source</name>
+    <required>true</required>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html> whether or not scrollbars are available on this
+              frame. Valid values for this attribute are the following
+              constants:<br/>
+
+
+     "yes" specifies that scrollbars are always available. <br/>
+     "no" specifies that scrollbars are never available. <br/>
+     "auto" specifies that the browser determines whether to display scroll
+              bars based on the size of the frame and its content. If
+              you do not specify a value for scrolling, the default
+              value is "auto"</html>]]></description>
+      <name>scrolling</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the name used to identify this frame]]></description>
+      <name>name</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the width of the frame margin. The value must be greater than zero (pixels).]]></description>
+      <name>marginWidth</name>
+      <type>int</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[frameBorderLayout is a layout bean which can be used to place seven
+          frames at left, right, top, bottom, innerLeft, innerRight and center
+          positions.]]></description>
+    <tag-name>frameBorderLayout</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlFrameBorderLayout</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.FrameBorderLayout</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.]]></description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[The size of frame spacing to be rendered.]]></description>
+      <name>frameSpacing</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the inline CSS style for this element]]></description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onunload Javascript handler.]]></description>
+      <name>onunload</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[The proposed width of this frameBorderLayout.  This can be in
+           pixels or percentage. This attribute is used only if this a nested
+           frameBorderLayout in a left/right facet of a
+           frameBorderLayout.]]></description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the CSS style class of the bean.]]></description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the short description of the bean.  This text
+         is commonly used by user agents to display tooltip help text.]]></description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[The proposed height of this frameBorderLayout.  This can be in
+           pixels or percentage. This attribute is used only if this a nested
+           frameBorderLayout in a top/bottom facet of a
+           frameBorderLayout.]]></description>
+      <name>height</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onload Javascript handler.]]></description>
+      <name>onload</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[The size for the border width to be rendered.]]></description>
+      <name>borderWidth</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[The size for the frame border width to be rendered.]]></description>
+      <name>frameBorderWidth</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[Tag for the HTML head element.]]></description>
+    <tag-name>head</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlHead</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Head</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[The title of the document.  (This title doesn't have to match the
+            title on any contained panelPage.)]]></description>
+      <name>title</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.]]></description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[<html>
+          The html tag generates the &lt;html&gt; element for an HTML page.</html>]]></description>
+    <tag-name>html</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlHtml</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Html</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[Set if the page should render in default standards mode, quirks mode, or strict mode.  Behavior of the modes are:<ul>
+<li>"default": renders as transitional doctypes for both XHTML and HTML,
+with <a href="http://developer.mozilla.org/en/docs/Gecko's_%22Almost_Standards%22_Mode">"almost standards"</a> rendering mode</li>
+<li>"strict": renders as a strict doctype for both XHTML and HTML, also
+in standards rendering mode</li>
+<li>"quirks": renders HTML pages in quirks mode, and XHTML with
+a transitional doctype, but standards mode  (there is no quirks mode for
+XHTML).</li></ul>]]></description>
+      <name>mode</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[The meta component supports generating an html meta tag for things like reloading the page or configuring viewport characteristics.  It is also important to note that a meta HTML tag cannot have an ID so the component ID will not be seen in the browser source.]]></description>
+    <tag-name>meta</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlMeta</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Meta</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the	content for the meta tag]]></description>
+      <name>content</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the	name or the http-equiv attribute for the meta tag (see the type attribute for further configuration)]]></description>
+      <name>name</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>how the name attribute is used.  Options are:
+              <ul><li>name - for "name" which is the most common use for meta tags
+                </li><li>httpEquiv - for "http-equiv" which is the used in some legacy meta tags
+                </li></ul>
+              </html>]]></description>
+      <name>type</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[RowLayout components can be used on their own, or to
+          define a row of a tableLayout component.]]></description>
+    <tag-name>rowLayout</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlRowLayout</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.RowLayout</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmousemove Javascript handler.]]></description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the default horizontal alignment of cells in this row.
+              The acceptable values are "center", "left", "right", "start", and "end".]]></description>
+      <name>halign</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.]]></description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an ondblclick Javascript handler.]]></description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the inline CSS style for this element]]></description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseout Javascript handler.]]></description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the CSS style class of the bean.]]></description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the preferred total width of the layout.
+              This attribute is ignored when the row layout is inside
+              of a table layout.]]></description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeyup Javascript handler.]]></description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeydown Javascript handler.]]></description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeypress Javascript handler.]]></description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the short description of the bean.  This text
+         is commonly used by user agents to display tooltip help text.]]></description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseover Javascript handler.]]></description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseup Javascript handler.]]></description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onclick Javascript handler.]]></description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmousedown Javascript handler.]]></description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the default vertical alignment of cells in this row.
+              The acceptable values are "middle", "top", and "bottom".]]></description>
+      <name>valign</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[The script component supports	importing libraries, and inline	scripts.]]></description>
+    <tag-name>script</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlScript</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.Script</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the	inline script]]></description>
+      <name>text</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the	IDs of the components that should trigger a partial update.
+	 This component	will listen on the trigger components. If one of the
+	 trigger components receives an	event that will	cause it to update
+	 in some way, this component will request to be	updated	too.]]></description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[if the script generates content
+	    using document.write() or document.writeln(), set this to true.
+	    It defaults	to false.]]></description>
+      <name>generatesContent</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the	URI of a script	library	to import.]]></description>
+      <name>source</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+  </tag>
+  <tag>
+    <description><![CDATA[<html>
+          A TableLayout is a thin wrapper around the HTML &lt;table&gt;
+          element.  It contains a series of row layout elements.</html>]]></description>
+    <tag-name>tableLayout</tag-name>
+    <component>
+      <component-type>org.apache.myfaces.trinidad.HtmlTableLayout</component-type>
+      <renderer-type>org.apache.myfaces.trinidad.TableLayout</renderer-type>
+      <handler-class>org.apache.myfaces.trinidadinternal.facelets.TrinidadComponentHandler</handler-class>
+    </component>
+    <attribute>
+      <description><![CDATA[a method reference to an attribute change listener.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.]]></description>
+      <name>attributeChangeListener</name>
+      <method-signature>void myMethod(org.apache.myfaces.trinidad.event.AttributeChangeEvent)</method-signature>
+    </attribute>
+    <attribute>
+      <description><![CDATA[The summary of the table's purpose and structure
+             for user agents rendering to non-visual media. This attribute
+             must be set if this element is being used to implement a data
+             table (instead of a layout table).]]></description>
+      <name>summary</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmousemove Javascript handler.]]></description>
+      <name>onmousemove</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the horizontal alignment of the table.
+              The acceptable values are "center", "left", "right", "start", and "end".]]></description>
+      <name>halign</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the IDs of the components that should trigger a partial update.
+         This component will listen on the trigger components. If one of the
+         trigger components receives an event that will cause it to update
+         in some way, this component will request to be updated too.]]></description>
+      <name>partialTriggers</name>
+      <type>java.lang.String[]</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an ondblclick Javascript handler.]]></description>
+      <name>ondblclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the inline CSS style for this element]]></description>
+      <name>inlineStyle</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseout Javascript handler.]]></description>
+      <name>onmouseout</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the CSS style class of the bean.]]></description>
+      <name>styleClass</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the preferred total width of the layout.]]></description>
+      <name>width</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeyup Javascript handler.]]></description>
+      <name>onkeyup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the spacing between cells.]]></description>
+      <name>cellSpacing</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeydown Javascript handler.]]></description>
+      <name>onkeydown</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onkeypress Javascript handler.]]></description>
+      <name>onkeypress</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the short description of the bean.  This text
+         is commonly used by user agents to display tooltip help text.]]></description>
+      <name>shortDesc</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[whether the component is rendered. When set to false, no output will be
+		delivered for this component (the component will not in any way be rendered,
+		and cannot be made visible on the client). If you want to change a component's
+		rendered attribute from false to true
+                using PPR, set the partialTrigger attribute of its parent component so the
+                parent refreshes and in turn will render this component.]]></description>
+      <name>rendered</name>
+      <type>boolean</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseover Javascript handler.]]></description>
+      <name>onmouseover</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the spacing within cells.]]></description>
+      <name>cellPadding</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[<html>the identifier for the component.  Every component may be named by a component identifier that must conform to the following rules:
+<ul>
+<li>They must start with a letter (as defined by the Character.isLetter() method) or underscore ( _ ).</li>
+<li>Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by the Character.isDigit() method, 
+dashes ( - ), or underscores ( _ ).  To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers 
+be as short as possible. If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component 
+that is a NamingContainer (if any).</li>
+</ul></html>]]></description>
+      <name>id</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[the border width around each cell.]]></description>
+      <name>borderWidth</name>
+      <type>int</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmouseup Javascript handler.]]></description>
+      <name>onmouseup</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an EL reference that will store the component instance on a
+bean.  This can be used to give programmatic access to a component
+from a backing bean, or to move creation of the component to a backing bean.]]></description>
+      <name>binding</name>
+      <type>javax.faces.component.UIComponent</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onclick Javascript handler.]]></description>
+      <name>onclick</name>
+      <type>java.lang.String</type>
+    </attribute>
+    <attribute>
+      <description><![CDATA[an onmousedown Javascript handler.]]></description>
+      <name>onmousedown</name>
+      <type>java.lang.String</type>
+    </attribute>
+  </tag>
+</facelet-taglib>
\ No newline at end of file