Added: 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/jasper/TomEETldScanner.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/jasper/TomEETldScanner.java?rev=1613707&view=auto
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/jasper/TomEETldScanner.java
 (added)
+++ 
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/jasper/TomEETldScanner.java
 Sat Jul 26 19:06:37 2014
@@ -0,0 +1,7840 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomee.jasper;
+
+import org.apache.jasper.servlet.TldScanner;
+import org.apache.openejb.util.reflection.Reflections;
+import org.apache.tomcat.util.descriptor.tld.TagXml;
+import org.apache.tomcat.util.descriptor.tld.TaglibXml;
+import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
+import org.apache.tomcat.util.descriptor.tld.ValidatorXml;
+import org.apache.tomee.installer.Paths;
+
+import javax.servlet.ServletContext;
+import javax.servlet.jsp.tagext.FunctionInfo;
+import javax.servlet.jsp.tagext.TagAttributeInfo;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+@SuppressWarnings("PMD") // this is generated so we don't really care
+public class TomEETldScanner extends TldScanner {
+    private static final Paths PATHS = new Paths(null);
+    private static final URL MYFACES_URL = findJar("myfaces-impl");
+    private static final URL JSTL_URL = findJar("openejb-jstl");
+    private static final Map<String, TldResourcePath> URI_TLD_RESOURCE = new 
HashMap<>();
+    private static final Map<TldResourcePath, TaglibXml> TLD_RESOURCE_TAG_LIB 
= new HashMap<>();
+    static {
+        populateMyfacesAndJstlData();
+    }
+
+    private final Map<String, TldResourcePath> uriTldResourcePathMapParent;
+    private final Map<TldResourcePath, TaglibXml> 
tldResourcePathTaglibXmlMapParent;
+
+    public TomEETldScanner(final ServletContext context, final boolean 
namespaceAware, final boolean validate, final boolean blockExternal) {
+        super(context, namespaceAware, validate, blockExternal);
+        uriTldResourcePathMapParent = (Map<String, TldResourcePath>) 
Reflections.get(this, "uriTldResourcePathMap");
+        tldResourcePathTaglibXmlMapParent = (Map<TldResourcePath, TaglibXml>) 
Reflections.get(this, "tldResourcePathTaglibXmlMap");
+        // we don't care about listeners since we add it ourself
+    }
+
+    @Override
+    protected void scanPlatform() {
+        super.scanPlatform();
+        uriTldResourcePathMapParent.putAll(URI_TLD_RESOURCE);
+        tldResourcePathTaglibXmlMapParent.putAll(TLD_RESOURCE_TAG_LIB);
+    }
+
+    //CHECKSTYLE:OFF
+    private static void populateMyfacesAndJstlData() {
+        // pre-populate with shared libraries (myfaces, jstl)
+        if (MYFACES_URL != null) {
+            {
+                final TldResourcePath path = new TldResourcePath(MYFACES_URL, 
null, "META-INF/myfaces_core.tld");
+                URI_TLD_RESOURCE.put("http://java.sun.com/jsf/core";, path);
+                final TaglibXml taglibXml = new TaglibXml();
+                taglibXml.setTlibVersion("1.2");
+                taglibXml.setJspVersion("2.1");
+                taglibXml.setShortName("f");
+                taglibXml.setUri("http://java.sun.com/jsf/core";);
+                taglibXml.setInfo("This tag library implements the standard 
JSF core tags.");
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("subview");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.SubviewTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Base class for components that provide a new 
\"namespace\" for the ids of their child components. <p> See the javadocs for 
interface NamingContainer for further details. </p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("rendered", false, "javax.el.ValueExpression", false, false, 
"A boolean value that indicates whether this component should be rendered. 
Default value: true.", true, false, "java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("id", true, null, true, false, "Get a string which uniquely 
identifies this UIComponent within the scope of the nearest ancestor 
NamingContainer component. The id is not necessarily unique across all 
components in the current view.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Identifies a backing bean property (of type UIComponent or appropriate 
subclass) to bind \" + \"to this component instance. This value must be an EL 
expression.", true, false, "javax.faces.component.UIComponent", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("viewParam");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ViewParamTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("TODO: documentation on jsp and pld are not 
the same. It appear two params: maxlength and for, but no property getter and 
setter founded here.  If maxlength is used, we can put something like this:  
JSFJspProperty(name = \"maxlength\", returnType = \"java.lang.String\")");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("maxlength", false, "javax.el.ValueExpression", false, false, 
"The max number or characters allowed for this param", true, false, "int", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("required", false, "javax.el.ValueExpression", false, false, 
"A boolean value that indicates whether an input value is required. <p> If this 
value is true and no input value is provided by a postback operation, then the 
\"requiredMessage\" text is registered as a FacesMessage for the request, and 
validation fails. </p> <p> Default value: false. </p>", true, false, "boolean", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("converterMessage", false, "javax.el.ValueExpression", false, 
false, "Text to be displayed to the user as an error message when conversion of 
a submitted value to the target type fails. <p> </p>", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("requiredMessage", false, "javax.el.ValueExpression", false, 
false, "Text to be displayed to the user as an error message when this 
component is marked as \"required\" but no input data is present during a 
postback (ie the user left the required field blank).", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("validator", false, "javax.el.MethodExpression", false, false, 
"A method-binding EL expression which is invoked during the validation phase 
for this component. <p> The invoked method is expected to check the submitted 
value for this component, and if not acceptable then report a validation error 
for the component. </p> <p> The method is expected to have the prototype </p> 
<code>public void aMethod(FacesContext, UIComponent,Object)</code>", false, 
true, null, "void myMethod( javax.faces.context.FacesContext, 
javax.faces.component.UIComponent, java.lang.Object )");
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("validatorMessage", false, "javax.el.ValueExpression", false, 
false, "Text which will be shown if validation fails.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("valueChangeListener", false, "javax.el.MethodExpression", 
false, false, "A method which is invoked during postback processing for the 
current view if the submitted value for this component is not equal to the 
value which the \"value\" expression for this component returns. <p> The phase 
in which this method is invoked can be controlled via the immediate attribute. 
</p>", false, true, null, "void myMethod( javax.faces.event.ValueChangeEvent 
)");
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("value", false, "javax.el.ValueExpression", false, false, 
"Gets The initial value of this component.", true, false, "java.lang.Object", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("converter", false, "javax.el.ValueExpression", false, false, 
"An expression that specifies the Converter for this component. <p> The value 
can either be a static value (ID) or an EL expression. When a static id is 
specified, an instance of the converter type registered with that id is used. 
When this is an EL expression, the result of evaluating the expression must be 
an object that implements the Converter interface. </p>", true, false, 
"javax.faces.convert.Converter", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("id", false, null, true, false, "Get a string which uniquely 
identifies this UIComponent within the scope of the nearest ancestor 
NamingContainer component. The id is not necessarily unique across all 
components in the current view.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Identifies a backing bean property (of type UIComponent or appropriate 
subclass) to bind \" + \"to this component instance. This value must be an EL 
expression.", true, false, "javax.faces.component.UIComponent", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("view");
+                    tag.setTagClass("org.apache.myfaces.taglib.core.ViewTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Creates a JSF View, which is a container that 
holds all of the components that are part of the view. <p> Unless otherwise 
specified, all attributes accept static values or EL expressions. </p> <p> See 
the javadoc for this class in the <a 
href=\"http://java.sun.com/j2ee/javaserverfaces/1.2/docs/api/index.html\";>JSF 
Specification</a> for further details. </p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("afterPhase", false, "javax.el.MethodExpression", false, 
false, "MethodBinding pointing to a method that takes a 
javax.faces.event.PhaseEvent and returns void, called after every phase except 
for restore view.", false, true, null, "void myMethod( 
javax.faces.event.PhaseEvent )");
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("beforePhase", false, "javax.el.MethodExpression", false, 
false, "MethodBinding pointing to a method that takes a 
javax.faces.event.PhaseEvent and returns void, called before every phase except 
for restore view.", false, true, null, "void myMethod( 
javax.faces.event.PhaseEvent )");
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("locale", false, "javax.el.ValueExpression", false, false, 
"The locale for this view. <p> Defaults to the default locale specified in the 
faces configuration file. </p>", true, false, "java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("renderKitId", false, "javax.el.ValueExpression", false, 
false, "Defines what renderkit should be used to render this view.", true, 
false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("param");
+                    tag.setTagClass("org.apache.myfaces.taglib.core.ParamTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag associates a parameter name-value 
pair with the nearest parent UIComponent. A UIComponent is created to represent 
this name-value pair, and stored as a child of the parent component; what 
effect this has depends upon the renderer of that parent component. <p> Unless 
otherwise specified, all attributes accept static values or EL expressions. 
</p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("value", false, "javax.el.ValueExpression", false, false, "The 
value of this component.", true, false, "java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("name", false, "javax.el.ValueExpression", false, false, "The 
name under which the value is stored.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("id", false, null, true, false, "Get a string which uniquely 
identifies this UIComponent within the scope of the nearest ancestor 
NamingContainer component. The id is not necessarily unique across all 
components in the current view.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Identifies a backing bean property (of type UIComponent or appropriate 
subclass) to bind \" + \"to this component instance. This value must be an EL 
expression.", true, false, "javax.faces.component.UIComponent", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("selectItem");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.SelectItemTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag associates a single SelectItem with 
the nearest parent UIComponent. The item represents a single option for a 
component such as an h:selectBooleanCheckbox or h:selectOneMenu. See also 
component selectItems. <p> Unless otherwise specified, all attributes accept 
static values or EL expressions. </p> <p> UISelectItem should be nestetd inside 
a UISelectMany or UISelectOne component, and results in the addition of a 
SelectItem instance to the list of available options for the parent component 
</p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("value", false, "javax.el.ValueExpression", false, false, "The 
initial value of this component.", true, false, "javax.faces.model.SelectItem", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("itemDisabled", false, "javax.el.ValueExpression", false, 
false, "Determine whether this item can be chosen by the user. When true, this 
item cannot be chosen by the user. If this method is ever called, then any 
EL-binding for the disabled property will be ignored.", true, false, 
"java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("escape", false, "javax.el.ValueExpression", false, false, 
"The escape setting for the label of this selection item.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("itemDescription", false, "javax.el.ValueExpression", false, 
false, "For use in development tools.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("itemLabel", false, "javax.el.ValueExpression", false, false, 
"The string which will be presented to the user for this option.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("itemValue", false, "javax.el.ValueExpression", false, false, 
"The value for this Item.", true, false, "java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("noSelectionOption", false, "javax.el.ValueExpression", false, 
false, "Indicate this component represent no selection option.  Default value 
is false.", true, false, "java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("id", false, null, true, false, "Get a string which uniquely 
identifies this UIComponent within the scope of the nearest ancestor 
NamingContainer component. The id is not necessarily unique across all 
components in the current view.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Identifies a backing bean property (of type UIComponent or appropriate 
subclass) to bind \" + \"to this component instance. This value must be an EL 
expression.", true, false, "javax.faces.component.UIComponent", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("selectItems");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.SelectItemsTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag associates a set of selection list 
items with the nearest parent UIComponent. The set of SelectItem objects is 
retrieved via a value-binding. <p> Unless otherwise specified, all attributes 
accept static values or EL expressions. </p> <p> UISelectItems should be nested 
inside a UISelectMany or UISelectOne component, and results in  the addition of 
one ore more SelectItem instance to the list of available options for the 
parent component </p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("value", false, "javax.el.ValueExpression", false, false, "The 
initial value of this component.", true, false, "java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("var", false, "java.lang.String", false, false, "Name of a 
request-scope attribute under which the current item of the collection, array, 
etc. of the value attribute will be  exposed so that it can be referred to in 
EL for other attributes  of this component.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("itemValue", false, "javax.el.ValueExpression", false, false, 
"The value for the current item.", true, false, "java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("itemLabel", false, "javax.el.ValueExpression", false, false, 
"The label of the current item.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("itemDescription", false, "javax.el.ValueExpression", false, 
false, "The description of the current item.", true, false, "java.lang.String", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("itemDisabled", false, "javax.el.ValueExpression", false, 
false, "Determines if the current item is selectable or not.", true, false, 
"java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("itemLabelEscaped", false, "javax.el.ValueExpression", false, 
false, "Determines if the rendered markup for the current item receives normal 
JSF HTML escaping or not.", true, false, "java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("id", false, null, true, false, "Get a string which uniquely 
identifies this UIComponent within the scope of the nearest ancestor 
NamingContainer component. The id is not necessarily unique across all 
components in the current view.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Identifies a backing bean property (of type UIComponent or appropriate 
subclass) to bind \" + \"to this component instance. This value must be an EL 
expression.", true, false, "javax.faces.component.UIComponent", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("convertDateTime");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ConvertDateTimeTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag associates a date time converter 
with the nearest parent UIComponent.  Unless otherwise specified, all 
attributes accept static values or EL expressions.  see Javadoc of <a 
href=\"http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html\";>JSF 
Specification</a>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("dateStyle", false, "javax.el.ValueExpression", false, false, 
"The style of the date.  Values include: default, short, medium,  long, and 
full.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("locale", false, "javax.el.ValueExpression", false, false, 
"The name of the locale to be used, instead of the default.", true, false, 
"java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("pattern", false, "javax.el.ValueExpression", false, false, "A 
custom Date formatting pattern, in the format used by 
java.text.SimpleDateFormat.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("timeStyle", false, "javax.el.ValueExpression", false, false, 
"The style of the time.  Values include:  default, short, medium, long,  and 
full.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("timeZone", false, "javax.el.ValueExpression", false, false, 
"The time zone to use instead of GMT (the default timezone). When this value is 
a value-binding to a TimeZone instance, that timezone is used. Otherwise this 
value is treated as a String containing a timezone id, ie as the ID parameter 
of method java.util.TimeZone.getTimeZone(String).", true, false, 
"java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("type", false, "javax.el.ValueExpression", false, false, 
"Specifies whether the date, time, or both should be  parsed/formatted.  Values 
include:  date, time, and both. Default based on setting of timeStyle and 
dateStyle.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, "A 
ValueExpression that evaluates to a DateTimeConverter.", true, false, 
"javax.faces.convert.DateTimeConverter", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("convertNumber");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ConvertNumberTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag creates a number formatting 
converter and associates it with the nearest parent UIComponent.  Unless 
otherwise specified, all attributes accept static values or EL expressions.  
see Javadoc of <a 
href=\"http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html\";>JSF 
Specification</a>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("currencyCode", false, "javax.el.ValueExpression", false, 
false, "ISO 4217 currency code", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("currencySymbol", false, "javax.el.ValueExpression", false, 
false, "The currency symbol used to format a currency value.  Defaults to the 
currency symbol for locale.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("groupingUsed", false, "javax.el.ValueExpression", false, 
false, "Specifies whether output will contain grouping separators.  Default: 
true.", true, false, "java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("integerOnly", false, "javax.el.ValueExpression", false, 
false, "Specifies whether only the integer part of the input will be parsed.  
Default: false.", true, false, "java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("locale", false, "javax.el.ValueExpression", false, false, 
"The name of the locale to be used, instead of the default as specified in the 
faces configuration file.", true, false, "java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("maxFractionDigits", false, "javax.el.ValueExpression", false, 
false, "The maximum number of digits in the fractional portion of the number.", 
true, false, "java.lang.Integer", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("maxIntegerDigits", false, "javax.el.ValueExpression", false, 
false, "The maximum number of digits in the integer portion of the number.", 
true, false, "java.lang.Integer", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("minFractionDigits", false, "javax.el.ValueExpression", false, 
false, "The minimum number of digits in the fractional portion of the number.", 
true, false, "java.lang.Integer", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("minIntegerDigits", false, "javax.el.ValueExpression", false, 
false, "The minimum number of digits in the integer portion of the number.", 
true, false, "java.lang.Integer", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("pattern", false, "javax.el.ValueExpression", false, false, "A 
custom Date formatting pattern, in the format used by 
java.text.SimpleDateFormat.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("type", false, "javax.el.ValueExpression", false, false, "The 
type of formatting/parsing to be performed.  Values include: number, currency, 
and percent.  Default: number.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, "A 
ValueExpression that evaluates to a NumberConverter.", true, false, 
"javax.faces.convert.NumberConverter", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("validateDoubleRange");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ValidateDoubleRangeTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Creates a validator and associateds it with 
the nearest parent UIComponent.  When invoked, the validator ensures that 
values are valid doubles that lie within the minimum and maximum values 
specified.  Commonly associated with a h:inputText entity.  Unless otherwise 
specified, all attributes accept static values or EL expressions.  see Javadoc 
of <a 
href=\"http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html\";>JSF 
Specification</a>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("maximum", false, "javax.el.ValueExpression", false, false, 
"The largest value that should be considered valid.", true, false, 
"java.lang.Double", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("minimum", false, "javax.el.ValueExpression", false, false, 
"The smallest value that should be considered valid.", true, false, 
"java.lang.Double", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, "A 
ValueExpression that evaluates to a DoubleRangeValidator.", true, false, 
"javax.faces.validator.DoubleRangeValidator", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("validateLength");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ValidateLengthTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Creates a validator and associateds it with 
the nearest parent UIComponent.  When invoked, the validator ensures that 
values are valid strings with a length that lies within the minimum and maximum 
values specified.  Commonly associated with a h:inputText entity.  Unless 
otherwise specified, all attributes accept static values or EL expressions.  
see Javadoc of <a 
href=\"http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html\";>JSF 
Specification</a>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("maximum", false, "javax.el.ValueExpression", false, false, 
"The largest value that should be considered valid.", true, false, 
"java.lang.Integer", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("minimum", false, "javax.el.ValueExpression", false, false, 
"The smallest value that should be considered valid.", true, false, 
"java.lang.Integer", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, "A 
ValueExpression that evaluates to a LengthValidator.", true, false, 
"javax.faces.validator.LengthValidator", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("validateLongRange");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ValidateLongRangeTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Creates a validator and associateds it with 
the nearest parent UIComponent.  When invoked, the validator ensures that 
values are valid longs that lie within the minimum and maximum values 
specified.  Commonly associated with a h:inputText entity.  Unless otherwise 
specified, all attributes accept static values or EL expressions.  see Javadoc 
of <a 
href=\"http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html\";>JSF 
Specification</a>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("maximum", false, "javax.el.ValueExpression", false, false, 
"The largest value that should be considered valid.", true, false, 
"java.lang.Long", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("minimum", false, "javax.el.ValueExpression", false, false, 
"The smallest value that should be considered valid.", true, false, 
"java.lang.Long", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, "A 
ValueExpression that evaluates to a LongRangeValidator.", true, false, 
"javax.faces.validator.LongRangeValidator", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("validateRegex");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ValidateRegexTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("<p>   <strong>RegexValidator</strong> is a 
{@link javax.faces.validator.Validator}   that checks the value of the 
corresponding component against specified   pattern using Java regular 
expression syntax.    The regular expression syntax accepted by the 
RegexValidator class is   same as mentioned in class {@link 
java.util.regex.Pattern} in package   <code>java.util.regex</code>. </p>  <p>   
The following algorithm is implemented: </p>  <ul>   <li>If the passed value is 
<code>null</code>, exit immediately.</li>   <li>     If the passed value is not 
a String, exit with a {@link #NOT_MATCHED_MESSAGE_ID}     error message.   
</li>   <li>     If no pattern has been set, or pattern resolves to 
<code>null</code> or an     empty String, throw a {@link 
javax.faces.validator.ValidatorException}     with a {@link 
#PATTERN_NOT_SET_MESSAGE_ID} message.   </li>   <li>     If pattern is not a 
valid regular expression, according to the rules as defined     in class {
 @link java.util.regex.Pattern}, throw a {@link ValidatorException}     with a 
(@link #MATCH_EXCEPTION_MESSAGE_ID} message.   </li>   <li>     If a 
<code>pattern</code> property has been configured on this     {@link 
javax.faces.validator.Validator}, check the passed value against this pattern.  
   If value does not match pattern throw a {@link ValidatorException}     
containing a {@link #NOT_MATCHED_MESSAGE_ID} message.   </li> </ul>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("pattern", true, "javax.el.ValueExpression", false, false, 
"Return the ValueExpression that yields the regular expression pattern when 
evaluated.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, "A 
ValueExpression that evaluates to a RegexValidator.", true, false, 
"javax.faces.validator.RegexValidator", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("facet");
+                    tag.setTagClass("javax.faces.webapp.FacetTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag adds its child as a facet of the 
nearest parent UIComponent. A child consisting of multiple elements should be 
nested within a container component (i.e., within an h:panelGroup for HTML 
library components).  Unless otherwise specified, all attributes accept static 
values or EL expressions.  see Javadoc of <a 
href=\"http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html\";>JSF 
Specification</a>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("name", true, "java.lang.String", false, false, "The name of 
the facet to be created. This must be a static value.", false, false, null, 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("actionListener");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ActionListenerTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag creates an instance of the specified 
ActionListener, and associates it with the nearest parent UIComponent. <p> 
Unless otherwise specified, all attributes accept static values or EL 
expressions. </p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("type", false, "javax.el.ValueExpression", false, false, "The 
fully qualified class name of the ActionListener class.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Value binding expression that evaluates to an object that implements 
javax.faces.event.ActionListener.", true, false, 
"javax.faces.event.ActionListener", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("attribute");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.AttributeTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag associates an attribute with the 
nearest parent UIComponent. <p> When the value is not an EL expression, this 
tag has the same effect as calling component.getAttributes.put(name, value). 
When the attribute name specified matches a standard property of the component, 
that property is set. However it is also valid to assign attributes to 
components using any arbitrary name; the component itself won't make any use of 
these but other objects such as custom renderers, validators or action 
listeners can later retrieve the attribute from the component by name. </p> <p> 
When the value is an EL expression, this tag has the same effect as calling 
component.setValueBinding. A call to method component.getAttributes().get(name) 
will then cause that expression to be evaluated and the result of the 
expression is returned, not the original EL expression string. </p> <p> See the 
javadoc for UIComponent.getAttributes for more details. </p> <p> Unless otherwis
 e specified, all attributes accept static values or EL expressions. </p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("name", false, "javax.el.ValueExpression", false, false, "The 
name of the attribute.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("value", false, "javax.el.ValueExpression", false, false, "The 
attribute's value.", true, false, "java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("converter");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ConverterImplTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag creates an instance of the specified 
Converter, and associates it with the nearest parent UIComponent.");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("converterId", false, "javax.el.ValueExpression", false, 
false, "The converter's registered ID.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, "A 
ValueExpression that evaluates to a Converter.", true, false, 
"javax.faces.convert.Converter", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("loadBundle");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.LoadBundleTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Loads a resource bundle and saves it as a 
variable in the request scope. <p> Unless otherwise specified, all attributes 
accept static values or EL expressions. </p> <p> TODO: We should find a way to 
save loaded bundles in the state, because otherwise on the next request the 
bundle map will not be present before the render phase and value bindings that 
reference to the bundle will always log annoying \"Variable 'xxx' could not be 
resolved\" error messages. </p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("basename", false, "javax.el.ValueExpression", false, false, 
"The base name of the resource bundle.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("var", true, "java.lang.String", false, false, "The name of 
the variable in request scope that the resources are saved to. This must be a 
static value.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("phaseListener");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.PhaseListenerTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Register a PhaseListener instance");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("type", false, "javax.el.ValueExpression", false, false, 
"Class name of the PhaseListener to be created and registered.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Value binding expression that evaluates to a PhaseListener.", true, false, 
"javax.faces.event.PhaseListener", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("setPropertyActionListener");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.SetPropertyActionListenerTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("target", true, "javax.el.ValueExpression", false, false, 
"ValueExpression for the destination of the value attribute.", true, false, 
"java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("value", true, "javax.el.ValueExpression", false, false, 
"ValueExpression for the value of the target attribute.", true, false, 
"java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("validator");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ValidatorImplTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Creates a validator and associates it with 
the nearest parent UIComponent. <p> During the validation phase (or the 
apply-request-values phase for immediate components), if the associated 
component has any submitted value and the conversion of that value to the 
required type has succeeded then the specified validator type is invoked to 
test the validity of the converted value. </p> <p> Commonly associated with an 
h:inputText entity, but may be applied to any input component. </p> <p> Some 
validators may allow the component to use attributes to define 
component-specific validation constraints; see the f:attribute tag. See also 
the \"validator\" attribute of all input components, which allows a component 
to specify an arbitrary validation &lt;i&gt;method&lt;/i&gt; (rather than a 
registered validation type, as this tag does). </p> <p> Unless otherwise 
specified, all attributes accept static values or EL expressions. </p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("validatorId", false, "javax.el.ValueExpression", false, 
false, "The registered ID of the desired Validator.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, "A 
ValueExpression that evaluates to an implementation of the 
javax.faces.validator.Validator interface.", true, false, 
"javax.faces.validator.Validator", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("valueChangeListener");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.ValueChangeListenerTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("empty");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Adds the specified ValueChangeListener to the 
nearest parent UIComponent (which is expected to be a UIInput component). <p> 
Whenever the form containing the parent UIComponent is submitted, an instance 
of the specified type is created. If the submitted value from the component is 
different from the component's current value then a ValueChangeEvent is queued. 
When the ValueChangeEvent is processed (at end of the validate phase for 
non-immediate components, or at end of the apply-request-values phase for 
immediate components) the object's processValueChange method is invoked. </p> 
<p> Unless otherwise specified, all attributes accept static values or EL 
expressions. </p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("type", false, "javax.el.ValueExpression", false, false, "The 
name of a Java class that implements ValueChangeListener.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Value binding expression that evaluates to an implementation of the 
javax.faces.event.ValueChangeListener interface.", true, false, 
"javax.faces.event.ValueChangeListener", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("verbatim");
+                    
tag.setTagClass("org.apache.myfaces.taglib.core.VerbatimTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("escape", false, "javax.el.ValueExpression", false, false, "If 
true, generated markup is escaped. Default: false.", true, false, 
"java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("rendered", false, "javax.el.ValueExpression", false, false, 
"Flag indicating whether or not this component should be rendered (during 
Render Response Phase), or processed on any subsequent form submit. The default 
value for this property is true.", true, false, "java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                // we do it in TomEEMyFacesContainerInitializer
+                // 
taglibXml.getListeners().add("org.apache.myfaces.webapp.StartupServletContextListener");
+                TLD_RESOURCE_TAG_LIB.put(path, taglibXml);
+            }
+            {
+                final TldResourcePath path = new TldResourcePath(MYFACES_URL, 
null, "META-INF/myfaces_html.tld");
+                URI_TLD_RESOURCE.put("http://java.sun.com/jsf/html";, path);
+                final TaglibXml taglibXml = new TaglibXml();
+                taglibXml.setTlibVersion("1.2");
+                taglibXml.setJspVersion("2.1");
+                taglibXml.setShortName("h");
+                taglibXml.setUri("http://java.sun.com/jsf/html";);
+                taglibXml.setInfo("This tag library implements the standard 
JSF HTML tags.");
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("inputHidden");
+                    
tag.setTagClass("org.apache.myfaces.taglib.html.HtmlInputHiddenTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Renders as an HTML input tag with its type 
set to \"hidden\". Unless otherwise specified, all attributes accept static 
values or EL expressions.");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("immediate", false, "javax.el.ValueExpression", false, false, 
"A boolean value that identifies the phase during which action events should 
fire. <p> During normal event processing, action methods and action listener 
methods are fired during the \"invoke application\" phase of request 
processing. If this attribute is set to \"true\", these methods are fired 
instead at the end of the \"apply request values\" phase. </p>", true, false, 
"boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("required", false, "javax.el.ValueExpression", false, false, 
"A boolean value that indicates whether an input value is required. <p> If this 
value is true and no input value is provided by a postback operation, then the 
\"requiredMessage\" text is registered as a FacesMessage for the request, and 
validation fails. </p> <p> Default value: false. </p>", true, false, "boolean", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("converterMessage", false, "javax.el.ValueExpression", false, 
false, "Text to be displayed to the user as an error message when conversion of 
a submitted value to the target type fails. <p> </p>", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("requiredMessage", false, "javax.el.ValueExpression", false, 
false, "Text to be displayed to the user as an error message when this 
component is marked as \"required\" but no input data is present during a 
postback (ie the user left the required field blank).", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("validator", false, "javax.el.MethodExpression", false, false, 
"A method-binding EL expression which is invoked during the validation phase 
for this component. <p> The invoked method is expected to check the submitted 
value for this component, and if not acceptable then report a validation error 
for the component. </p> <p> The method is expected to have the prototype </p> 
<code>public void aMethod(FacesContext, UIComponent,Object)</code>", false, 
true, null, "void myMethod( javax.faces.context.FacesContext, 
javax.faces.component.UIComponent, java.lang.Object )");
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("validatorMessage", false, "javax.el.ValueExpression", false, 
false, "Text which will be shown if validation fails.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("valueChangeListener", false, "javax.el.MethodExpression", 
false, false, "A method which is invoked during postback processing for the 
current view if the submitted value for this component is not equal to the 
value which the \"value\" expression for this component returns. <p> The phase 
in which this method is invoked can be controlled via the immediate attribute. 
</p>", false, true, null, "void myMethod( javax.faces.event.ValueChangeEvent 
)");
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("value", false, "javax.el.ValueExpression", false, false, 
"Gets The initial value of this component.", true, false, "java.lang.Object", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("converter", false, "javax.el.ValueExpression", false, false, 
"An expression that specifies the Converter for this component. <p> The value 
can either be a static value (ID) or an EL expression. When a static id is 
specified, an instance of the converter type registered with that id is used. 
When this is an EL expression, the result of evaluating the expression must be 
an object that implements the Converter interface. </p>", true, false, 
"javax.faces.convert.Converter", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("id", false, null, true, false, "Get a string which uniquely 
identifies this UIComponent within the scope of the nearest ancestor 
NamingContainer component. The id is not necessarily unique across all 
components in the current view.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("rendered", false, "javax.el.ValueExpression", false, false, 
"A boolean value that indicates whether this component should be rendered. 
Default value: true.", true, false, "boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Identifies a backing bean property (of type UIComponent or appropriate 
subclass) to bind \" + \"to this component instance. This value must be an EL 
expression.", true, false, "javax.faces.component.UIComponent", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("column");
+                    
tag.setTagClass("org.apache.myfaces.taglib.html.HtmlColumnTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("Creates a UIComponent that represents a 
single column of data within a parent UIData component. <p> This tag is 
commonly used as a child of the h:dataTable tag, to represent a column of data 
within an html table. It can be decorated with nested \"header\" and \"footer\" 
facets which cause the output of header and footer rows. </p> <p> The non-facet 
child components of this column are re-rendered on each table row to generate 
the content of the cell. Those child components can reference the \"var\" 
attribute of the containing h:dataTable to generate appropriate output for each 
row. </p>");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("headerClass", false, "javax.el.ValueExpression", false, 
false, "CSS class to be used for the header.", true, false, "java.lang.String", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("footerClass", false, "javax.el.ValueExpression", false, 
false, "CSS class to be used for the footer.", true, false, "java.lang.String", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("rowHeader", false, "javax.el.ValueExpression", false, false, 
"If true the column is rendered with \"th\" and scope=\"row\" attribute, 
instead \"td\"", true, false, "boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("rendered", false, "javax.el.ValueExpression", false, false, 
"A boolean value that indicates whether this component should be rendered. 
Default value: true.", true, false, "java.lang.Boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("id", false, "java.lang.String", false, false, "Get a string 
which uniquely identifies this UIComponent within the scope of the nearest 
ancestor NamingContainer component. The id is not necessarily unique across all 
components in the current view.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Identifies a backing bean property (of type UIComponent or appropriate 
subclass) to bind \" + \"to this component instance. This value must be an EL 
expression.", true, false, "javax.faces.component.UIComponent", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("commandButton");
+                    
tag.setTagClass("org.apache.myfaces.taglib.html.HtmlCommandButtonTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag renders as an HTML input element.");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("image", false, "javax.el.ValueExpression", false, false, 
"HTML: The URL of an image that renders in place of the button.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("type", false, "javax.el.ValueExpression", false, false, 
"HTML: A hint to the user agent about the content type of the linked 
resource.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("label", false, "javax.el.ValueExpression", false, false, "A 
display name for this component.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("style", false, "javax.el.ValueExpression", false, false, 
"HTML: CSS styling instructions.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("styleClass", false, "javax.el.ValueExpression", false, false, 
"The CSS class for this element.  Corresponds to the HTML 'class' attribute.", 
true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("alt", false, "javax.el.ValueExpression", false, false, "HTML: 
Specifies alternative text that can be used by a browser that can't show this 
element.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("tabindex", false, "javax.el.ValueExpression", false, false, 
"HTML: Specifies the position of this element within the tab order of the 
document.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onblur", false, "javax.el.ValueExpression", false, false, 
"HTML: Specifies a script to be invoked when the element loses focus.", true, 
false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onfocus", false, "javax.el.ValueExpression", false, false, 
"HTML: Specifies a script to be invoked when the element receives focus.", 
true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("accesskey", false, "javax.el.ValueExpression", false, false, 
"HTML: Sets the access key for this element.", true, false, "java.lang.String", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onchange", false, "javax.el.ValueExpression", false, false, 
"HTML: Specifies a script to be invoked when the element is modified.", true, 
false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onselect", false, "javax.el.ValueExpression", false, false, 
"HTML: Specifies a script to be invoked when the element is selected.", true, 
false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onclick", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when the element is clicked.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("ondblclick", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when the element is double-clicked.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onkeydown", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when a key is pressed down over this element.", 
true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onkeypress", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when a key is pressed over this element.", true, 
false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onkeyup", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when a key is released over this element.", true, 
false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onmousedown", false, "javax.el.ValueExpression", false, 
false, "HTML: Script to be invoked when the pointing device is pressed over 
this element.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onmousemove", false, "javax.el.ValueExpression", false, 
false, "HTML: Script to be invoked when the pointing device is moved while it 
is in this element.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onmouseout", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when the pointing device is moves out of this 
element.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onmouseover", false, "javax.el.ValueExpression", false, 
false, "HTML: Script to be invoked when the pointing device is moved into this 
element.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onmouseup", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when the pointing device is released over this 
element.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("dir", false, "javax.el.ValueExpression", false, false, "HTML: 
The direction of text display, either 'ltr' (left-to-right) or 'rtl' 
(right-to-left).", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("lang", false, "javax.el.ValueExpression", false, false, 
"HTML: The base language of this document.", true, false, "java.lang.String", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("title", false, "javax.el.ValueExpression", false, false, 
"HTML: An advisory title for this element.  Often used by the user agent as a 
tooltip.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("disabled", false, "javax.el.ValueExpression", false, false, 
"HTML: When true, this element cannot receive focus.", true, false, "boolean", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("readonly", false, "javax.el.ValueExpression", false, false, 
"HTML: When true, indicates that this component cannot be modified by the user. 
The element may receive focus unless it has also been disabled.", true, false, 
"boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("immediate", false, "javax.el.ValueExpression", false, false, 
"A boolean value that identifies the phase during which action events should 
fire. <p> During normal event processing, action methods and action listener 
methods are fired during the \"invoke application\" phase of request 
processing. If this attribute is set to \"true\", these methods are fired 
instead at the end of the \"apply request values\" phase. </p>", true, false, 
"boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("value", false, "javax.el.ValueExpression", false, false, "The 
text to display to the user for this command component.", true, false, 
"java.lang.Object", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("action", false, "javax.el.MethodExpression", false, false, 
"The action to take when this command is invoked. <p> If the value is an 
expression, it is expected to be a method binding EL expression that identifies 
an action method. An action method accepts no parameters and has a String 
return value, called the action outcome, that identifies the next view 
displayed. The phase that this event is fired in can be controlled via the 
immediate attribute. </p> <p>  If the value is a string literal, it is treated 
as a navigation outcome for the current view. This is functionally equivalent 
to a reference to an action method that returns the string literal. </p>", 
false, true, null, "java.lang.Object myMethod(  )");
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("actionListener", false, "javax.el.MethodExpression", false, 
false, "", false, true, null, "void myMethod( javax.faces.event.ActionEvent )");
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("id", false, null, true, false, "Get a string which uniquely 
identifies this UIComponent within the scope of the nearest ancestor 
NamingContainer component. The id is not necessarily unique across all 
components in the current view.", false, false, null, null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("rendered", false, "javax.el.ValueExpression", false, false, 
"A boolean value that indicates whether this component should be rendered. 
Default value: true.", true, false, "boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("binding", false, "javax.el.ValueExpression", false, false, 
"Identifies a backing bean property (of type UIComponent or appropriate 
subclass) to bind \" + \"to this component instance. This value must be an EL 
expression.", true, false, "javax.faces.component.UIComponent", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    taglibXml.addTag(tag);
+                }
+                {
+                    final TagXml tag = new TagXml();
+                    tag.setName("commandLink");
+                    
tag.setTagClass("org.apache.myfaces.taglib.html.HtmlCommandLinkTag");
+                    tag.setTeiClass(null);
+                    tag.setBodyContent("JSP");
+                    tag.setDisplayName(null);
+                    tag.setSmallIcon(null);
+                    tag.setLargeIcon(null);
+                    tag.setInfo("This tag renders as an HTML a element.");
+                    tag.setDynamicAttributes(false);
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("disabled", false, "javax.el.ValueExpression", false, false, 
"When true, this element cannot receive focus.", true, false, "boolean", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("style", false, "javax.el.ValueExpression", false, false, 
"HTML: CSS styling instructions.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("styleClass", false, "javax.el.ValueExpression", false, false, 
"The CSS class for this element.  Corresponds to the HTML 'class' attribute.", 
true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("tabindex", false, "javax.el.ValueExpression", false, false, 
"HTML: Specifies the position of this element within the tab order of the 
document.", true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onblur", false, "javax.el.ValueExpression", false, false, 
"HTML: Specifies a script to be invoked when the element loses focus.", true, 
false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onfocus", false, "javax.el.ValueExpression", false, false, 
"HTML: Specifies a script to be invoked when the element receives focus.", 
true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("accesskey", false, "javax.el.ValueExpression", false, false, 
"HTML: Sets the access key for this element.", true, false, "java.lang.String", 
null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onclick", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when the element is clicked.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("ondblclick", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when the element is double-clicked.", true, false, 
"java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onkeydown", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when a key is pressed down over this element.", 
true, false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);
+                    }
+                    {
+                        final TagAttributeInfo attr = new 
TagAttributeInfo("onkeypress", false, "javax.el.ValueExpression", false, false, 
"HTML: Script to be invoked when a key is pressed over this element.", true, 
false, "java.lang.String", null);
+                        tag.getAttributes().add(attr);

[... 6811 lines stripped ...]

Reply via email to