diff --git a/cobigen/cobigen-xmlplugin/pom.xml b/cobigen/cobigen-xmlplugin/pom.xml
index b6c9fc5eca..9239748b69 100644
--- a/cobigen/cobigen-xmlplugin/pom.xml
+++ b/cobigen/cobigen-xmlplugin/pom.xml
@@ -2,7 +2,7 @@
4.0.0
xmlplugin
CobiGen - XML Plug-In
- 4.2.0
+ 7.0.0
jar
CobiGen - XML Plug-In
@@ -21,18 +21,18 @@
com.devonfw.cobigen
core-api
- 5.3.0
+ [7.0.0,)
- lexeme
com.github.maybeec
- 1.0.0
+ lexeme
+ 1.1.0
com.devonfw.cobigen
core-test
- 6.0.0
+ 7.0.0
test
@@ -47,13 +47,13 @@
com.devonfw.cobigen
core
- 6.0.0
+ 7.0.0
test
com.devonfw.cobigen
tempeng-freemarker
- 2.0.0
+ 7.0.0-SNAPSHOT
test
diff --git a/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/XmlPluginActivator.java b/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/XmlPluginActivator.java
index 77c1e0f85e..fec35a4f2f 100644
--- a/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/XmlPluginActivator.java
+++ b/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/XmlPluginActivator.java
@@ -1,7 +1,12 @@
package com.devonfw.cobigen.xmlplugin;
+import java.nio.file.Path;
import java.util.List;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.devonfw.cobigen.api.annotation.Activation;
import com.devonfw.cobigen.api.extension.GeneratorPluginActivator;
import com.devonfw.cobigen.api.extension.Merger;
import com.devonfw.cobigen.api.extension.TriggerInterpreter;
@@ -12,6 +17,9 @@
/**
* Plug-in activator to be detected by CobiGen's service loader lookup.
*/
+@Activation(byMergeStrategy = { "xmlmerge_override", "xmlmerge", "xmlmerge_attachTexts",
+ "xmlmerge_override_attachTexts", "xmlmerge_override_validate", "xmlmerge_validate", "xmlmerge_attachTexts_validate",
+ "xmlmerge_override_attachTexts_validate" }, byFileExtension = { "xml", "xmi" })
public class XmlPluginActivator implements GeneratorPluginActivator {
/**
@@ -19,14 +27,27 @@ public class XmlPluginActivator implements GeneratorPluginActivator {
*/
static private String defaultMergeSchemaLocation = "src/main/resources/mergeSchemas";
+ /** Static Logger instance */
+ private static final Logger LOG = LoggerFactory.getLogger(XmlPluginActivator.class);
+
+ /**
+ * List of mergers to update
+ */
+ private static List mergerList = Lists.newLinkedList();
+
@Override
public List bindMerger() {
List merger = Lists.newLinkedList();
-
- merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.BASEOVERWRITE));
- merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.BASEATTACHOROVERWRITE));
- merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.PATCHOVERWRITE));
- merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.PATCHATTACHOROVERWRITE));
+ merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.BASEOVERWRITE, false));
+ merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.BASEATTACHOROVERWRITE, false));
+ merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.PATCHOVERWRITE, false));
+ merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.PATCHATTACHOROVERWRITE, false));
+ // mergers with validation enabled
+ merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.BASEOVERWRITEVALIDATE, true));
+ merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.BASEATTACHOROVERWRITEVALIDATE, true));
+ merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.PATCHOVERWRITEVALIDATE, true));
+ merger.add(new XmlMergerDelegate(defaultMergeSchemaLocation, MergeType.PATCHATTACHOROVERWRITEVALIDATE, true));
+ mergerList = merger;
return merger;
}
@@ -35,4 +56,14 @@ public List bindTriggerInterpreter() {
return Lists. newArrayList(new XmlTriggerInterpreter("xml"));
}
+ @Override
+ public void setProjectRoot(Path path) {
+ LOG.debug("updated project root path {}", path);
+ for (Merger merger : mergerList) {
+ if (merger instanceof XmlMergerDelegate) {
+ ((XmlMergerDelegate) merger).updateMergeSchemaPath(path);
+ }
+ }
+ }
+
}
diff --git a/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/XmlTriggerInterpreter.java b/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/XmlTriggerInterpreter.java
index b838ba82f2..ec164b6438 100644
--- a/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/XmlTriggerInterpreter.java
+++ b/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/XmlTriggerInterpreter.java
@@ -1,7 +1,9 @@
package com.devonfw.cobigen.xmlplugin;
+import com.devonfw.cobigen.api.annotation.ReaderPriority;
import com.devonfw.cobigen.api.extension.InputReader;
import com.devonfw.cobigen.api.extension.MatcherInterpreter;
+import com.devonfw.cobigen.api.extension.Priority;
import com.devonfw.cobigen.api.extension.TriggerInterpreter;
import com.devonfw.cobigen.xmlplugin.inputreader.XmlInputReader;
import com.devonfw.cobigen.xmlplugin.matcher.XmlMatcher;
@@ -9,6 +11,7 @@
/**
* {@link TriggerInterpreter} implementation of a Xml Interpreter
*/
+@ReaderPriority(Priority.LOW)
public class XmlTriggerInterpreter implements TriggerInterpreter {
/**
diff --git a/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/merger/delegates/MergeType.java b/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/merger/delegates/MergeType.java
index 73dbb62f1d..11e573ad22 100644
--- a/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/merger/delegates/MergeType.java
+++ b/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/merger/delegates/MergeType.java
@@ -25,7 +25,26 @@ public enum MergeType {
* In case of a conflict the patch document is preferred. Attributes and text nodes will be attached where
* possible
*/
- PATCHATTACHOROVERWRITE("xmlmerge_override_attachTexts", ConflictHandlingType.PATCHATTACHOROVERWRITE);
+ PATCHATTACHOROVERWRITE("xmlmerge_override_attachTexts", ConflictHandlingType.PATCHATTACHOROVERWRITE),
+ /**
+ * In case of a conflict the patch document is preferred. Validation will be enabled.
+ */
+ PATCHOVERWRITEVALIDATE("xmlmerge_override_validate", ConflictHandlingType.PATCHOVERWRITEVALIDATE),
+ /**
+ * In case of a conflict the base document is preferred. Validation will be enabled.
+ */
+ BASEOVERWRITEVALIDATE("xmlmerge_validate", ConflictHandlingType.BASEOVERWRITEVALIDATE),
+ /**
+ * In case of a conflict the base document is preferred. Attributes and text nodes will be attached where
+ * possible. Validation will be enabled.
+ */
+ BASEATTACHOROVERWRITEVALIDATE("xmlmerge_attachTexts_validate", ConflictHandlingType.BASEATTACHOROVERWRITEVALIDATE),
+ /**
+ * In case of a conflict the patch document is preferred. Attributes and text nodes will be attached where
+ * possible. Validation will be enabled.
+ */
+ PATCHATTACHOROVERWRITEVALIDATE("xmlmerge_override_attachTexts_validate",
+ ConflictHandlingType.PATCHATTACHOROVERWRITEVALIDATE);
/**
* The ConflictHandlingType
diff --git a/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/merger/delegates/XmlMergerDelegate.java b/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/merger/delegates/XmlMergerDelegate.java
index 6c636866a9..527463f78e 100644
--- a/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/merger/delegates/XmlMergerDelegate.java
+++ b/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/merger/delegates/XmlMergerDelegate.java
@@ -1,8 +1,13 @@
package com.devonfw.cobigen.xmlplugin.merger.delegates;
import java.io.File;
+import java.nio.file.Files;
import java.nio.file.Path;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.devonfw.cobigen.api.constants.ConfigurationConstants;
import com.devonfw.cobigen.api.exception.MergeException;
import com.devonfw.cobigen.api.extension.Merger;
import com.github.maybeec.lexeme.LeXeMerger;
@@ -20,30 +25,73 @@ public class XmlMergerDelegate implements Merger {
/** {@link LeXeMerger} instance to be used. */
private LeXeMerger merger;
+ /**
+ * Path to merge schema files
+ */
+ private Path mergeSchemaPath;
+
+ /**
+ * Required to pass validation state to new LeXeMerger if path to root template was changed
+ */
+ private boolean validationEnabled = false;
+
+ private static final Logger LOG = LoggerFactory.getLogger(XmlMergerDelegate.class);
+
/**
*
* @param mergeSchemaLocation
- * path to the folder containing the merge schemas to be used
+ * String of a path to the folder containing the merge schemas to be used
* @param mergeType
* the way how conflicts will be handled
+ * @param validate
+ * use validator
* @author sholzer (Aug 27, 2015)
*/
- public XmlMergerDelegate(String mergeSchemaLocation, MergeType mergeType) {
+ public XmlMergerDelegate(String mergeSchemaLocation, MergeType mergeType, Boolean validate) {
this.mergeType = mergeType;
+
merger = new LeXeMerger(mergeSchemaLocation);
+ setValidation(validate);
+ validationEnabled = validate;
}
/**
*
* @param mergeSchemaLocation
- * path to the folder containing the merge schemas to be used
+ * Path to the folder containing the merge schemas to be used
* @param mergeType
* the way how conflicts will be handled
+ * @param validate
+ * use validator
* @author sholzer (Aug 27, 2015)
*/
- public XmlMergerDelegate(Path mergeSchemaLocation, MergeType mergeType) {
+ public XmlMergerDelegate(Path mergeSchemaLocation, MergeType mergeType, Boolean validate) {
this.mergeType = mergeType;
+
merger = new LeXeMerger(mergeSchemaLocation);
+ setValidation(validate);
+ validationEnabled = validate;
+ }
+
+ /**
+ * Updates path of merge schema location with new template root path
+ *
+ * @param path
+ * Path to resolve with MERGE_SCHEMA_RESOURCE_FOLDER path
+ */
+ public void updateMergeSchemaPath(Path path) {
+ if (path != null) {
+ Path newMergeSchemaPath = path.resolve(ConfigurationConstants.MERGE_SCHEMA_RESOURCE_FOLDER);
+ if (Files.exists(newMergeSchemaPath)) {
+ mergeSchemaPath = newMergeSchemaPath;
+ merger = new LeXeMerger(mergeSchemaPath);
+ setValidation(validationEnabled);
+ } else {
+ mergeSchemaPath = null;
+ }
+ } else {
+ throw new IllegalArgumentException("rootPath path cannot be null.");
+ }
}
@Override
@@ -63,7 +111,7 @@ public String merge(File base, String patch, String targetCharset) throws MergeE
/**
* Sets the validation flag
* @param validation
- * true if a validation is desired. false otherwise. Default is true
+ * true if a validation is desired. false otherwise. Default is false
* @author sholzer (Sep 1, 2015)
*/
public void setValidation(boolean validation) {
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jfs-html.xml b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jfs-html.xml
index 749808bae0..32875a1dd4 100644
--- a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jfs-html.xml
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jfs-html.xml
@@ -1,10 +1,14 @@
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jsf-core.xml b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jsf-core.xml
new file mode 100644
index 0000000000..7d0d1fd6a5
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jsf-core.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jsf-facelets.xml b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jsf-facelets.xml
index b547adfbb4..c7e905c11d 100644
--- a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jsf-facelets.xml
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/incomplete_jsf-facelets.xml
@@ -1,9 +1,11 @@
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xhtml.xml b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xhtml.xml
index 4fdd345856..08946b23bd 100644
--- a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xhtml.xml
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xhtml.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/facelets-ui-2.0.xsd b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/facelets-ui-2.0.xsd
new file mode 100644
index 0000000000..6bf94acd15
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/facelets-ui-2.0.xsd
@@ -0,0 +1,608 @@
+
+
+
+
+ </pre> <div class="changed_added_2_0"> <p>The tags in this library add templating—a powerful view composition technique—to JSF. Templating is so useful that there are entire frameworks, such as Tiles and SiteMesh, that are built around the concept of templating. So what is templating, how can you benefit from it, and how does this tag library implement it? </p> <p>If you've used JSP before, you've probably used <code>jsp:include</code>. The prototypical example for <code>jsp:include</code> is a header on each page in a web application. One JSP page, say header.jsp, encapsulates the header content, and the header is included by each page. You <em>encapsulate and reuse content</em>, so that changes to one file, header.jsp, affect the header on every page. </p> <p>This tab library contains a tag—<code>ui:include</code>— that's analagous to <code>jsp:include</code>, but encapsulating and reusing content is only half the templating story, because templating also lets you <em>encapsulate and reuse <b>layout</b></em>. You define a single <em>template</em> (meaning layout), and you reuse that template with multiple <em>compositions</em>. So now you can control the layout of many pages with a single template (layout). Let's take a look at an example. </p> <h3>A Templating Example</h3> <p> First, we define a template: </p> <div class="syntax"><div class="html4strict" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc0"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"</div></li> <li class="li2"><div class="de2"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></span></div></li> <li class="li1"><div class="de1"> </div></li> <li class="li2"><div class="de2"><span class="sc3"><span class="re1"><html</span> <span class="re0">xmlns</span>=<span class="st0">"http://www.w3.org/1999/xhtml"</span></div></li> <li class="li1"><div class="de1"> xmlns:<span class="re0">ui</span>=<span class="st0">"http://java.sun.com/jsf/facelets"</span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><head<span class="re2">></span></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"><link</span> <span class="re0">href</span>=<span class="st0">"styles.css"</span> <span class="re0">rel</span>=<span class="st0">"stylesheet"</span> <span class="re0">type</span>=<span class="st0">"text/css"</span><span class="re2">/></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><title<span class="re2">></span></span></span><span class="sc3"><span class="re1"><ui</span>:insert <span class="re0">name</span>=<span class="st0">"title"</span><span class="re2">></span></span>Default Title<span class="sc3"><span class="re1"></ui</span>:insert<span class="re2">></span></span><span class="sc3"><span class="re1"></title<span class="re2">></span></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"></head<span class="re2">></span></span></span></div></li> <li class="li1"><div class="de1"> </div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"><body<span class="re2">></span></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><ui</span>:debug<span class="re2">/></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"><div</span> <span class="re0">class</span>=<span class="st0">"heading"</span><span class="re2">></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><ui</span>:insert <span class="re0">name</span>=<span class="st0">"heading"</span><span class="re2">/></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"></div<span class="re2">></span></span></span></div></li> <li class="li1"><div class="de1"> </div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"><div</span> <span class="re0">class</span>=<span class="st0">"content"</span><span class="re2">></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><ui</span>:insert <span class="re0">name</span>=<span class="st0">"content"</span><span class="re2">/></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"></div<span class="re2">></span></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"></body<span class="re2">></span></span></span></div></li> <li class="li2"><div class="de2"><span class="sc3"><span class="re1"></html<span class="re2">></span></span></span> </div></li></ol></div></div> <p> In the preceeding listing, we've defined a layout, also known as a template. That template uses the <code>ui:insert</code> tag to insert pieces of a page —namely, title, heading, and content— defined in a <em>composition</em>. Notice that on line 8, we define a default title, in case one isn't provided by the composition. Also note that on line 12 we have the <code>ui:debug</code> tag, which lets the user activate a popup window with debugging information by typing CTRL + Shift + d. </p> <p> The title, heading, and content pieces of the page referenced in the template are defined in a separate XHTML file in a composition, like this: </p> <div class="syntax"><div class="html4strict" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc0"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"</div></li> <li class="li2"><div class="de2"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></span></div></li> <li class="li1"><div class="de1"> </div></li> <li class="li2"><div class="de2"><span class="sc3"><span class="re1"><html</span> <span class="re0">xmlns</span>=<span class="st0">"http://www.w3.org/1999/xhtml"</span></div></li> <li class="li1"><div class="de1"> xmlns:<span class="re0">ui</span>=<span class="st0">"http://java.sun.com/jsf/facelets"</span><span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> </div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><body<span class="re2">></span></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"><ui</span>:composition <span class="re0">template</span>=<span class="st0">"/layout.xhtml"</span><span class="re2">></span></span></div></li> <li class="li1"><div class="de1"> </div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"><ui</span>:define <span class="re0">name</span>=<span class="st0">"title"</span><span class="re2">></span></span>A List of Contacts<span class="sc3"><span class="re1"></ui</span>:define<span class="re2">></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><ui</span>:define <span class="re0">name</span>=<span class="st0">"heading"</span><span class="re2">></span></span>Contacts<span class="sc3"><span class="re1"></ui</span>:define<span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> </div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><ui</span>:define <span class="re0">name</span>=<span class="st0">"content"</span><span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"><ui</span>:include <span class="re0">src</span>=<span class="st0">"contactsTable.xhtml"</span> <span class="re2">/></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"></ui</span>:define<span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> </div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"></ui</span>:composition<span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"></body<span class="re2">></span></span></span></div></li> <li class="li1"><div class="de1"><span class="sc3"><span class="re1"></html<span class="re2">></span></span></span> </div></li></ol></div></div> <p> At runtime, JSF synthesizes the two previous XHTML pages to create a single JSF view by inserting the pieces defined in the composition into the template (that template is layout.xhtml, which is the first listing above). JSF also disregards everything outside of the <code>composition</code> tag so that we don't wind up with two <code>body</code> elements in the view. Also, note that we use the <code>ui:include</code> tag on line 14 to include content (which happens to be a table) from another XHTML page, so that we can reuse that table in other views. </p> <p> So why do we have two XHTML pages to define a single view? Why not simply take the pieces and manually insert them into the layout so that we have only a single XHTML page? The answer is simple: we have separated layout from the content so that we can <em>reuse that layout</em> among multiple compositions. For example, now we can define another composition that uses the same layout: </p> <div class="syntax"><div class="html4strict" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc0"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"</div></li> <li class="li2"><div class="de2"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></span></div></li> <li class="li1"><div class="de1"> </div></li> <li class="li2"><div class="de2"><span class="sc3"><span class="re1"><html</span> <span class="re0">xmlns</span>=<span class="st0">"http://www.w3.org/1999/xhtml"</span></div></li> <li class="li1"><div class="de1"> xmlns:<span class="re0">ui</span>=<span class="st0">"http://java.sun.com/jsf/facelets"</span><span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> </div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><body<span class="re2">></span></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"><ui</span>:composition <span class="re0">template</span>=<span class="st0">"/layout.xhtml"</span><span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> </div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><ui</span>:define <span class="re0">name</span>=<span class="st0">"title"</span><span class="re2">></span></span>Create a Contact<span class="sc3"><span class="re1"></ui</span>:define<span class="re2">></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><ui</span>:define <span class="re0">name</span>=<span class="st0">"heading"</span><span class="re2">></span></span>Create Contact</ui</span>:define<span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> </div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"><ui</span>:define <span class="re0">name</span>=<span class="st0">"content"</span><span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"><ui</span>:include <span class="re0">src</span>=<span class="st0">"createContactForm.xhtml"</span><span class="re2">/></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"></ui</span>:define<span class="re2">></span></span></div></li> <li class="li2"><div class="de2"> </div></li> <li class="li2"><div class="de2"> <span class="sc3"><span class="re1"></ui</span>:composition<span class="re2">></span></span></div></li> <li class="li1"><div class="de1"> <span class="sc3"><span class="re1"></body<span class="re2">></span></span></span></div></li> <li class="li2"><div class="de2"><span class="sc3"><span class="re1"></html<span class="re2">></span></span></span> </div></li></ol></div></div> <p> By encapsulating the layout, we can reuse that layout among multiple compositions. Just like <code>ui:include</code> lets us encapsulate and reuse conent, JSF compositions let us encapsulate and reuse layout, so that changes to a single layout can affect multiple views. Fundamentally, that's what this tag library is all about. </p> </div> <pre>
+ tlib-version: 2.1
+
+
+
+
+
+ This tag is the same as the ui:composition
, except for two things:
+ JSF creates a component and adds it directly to the tree, and there's no associated
+ template.
+
+
+
+ Use this tag to create a component and specify a filename for the
+ component as either the source of a ui:include
, or the source of a Facelets tag.
+
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+ The identifier of the component that JSF inserts into the component tree. If an identifier is
+ not explicitly specified by the page author, JSF will assign an identifier based on the algorithm
+ that it uses for all components.
+
+
+
+ ]]>
+
+
+
+
+
+
+ Binds the component to a backing bean property, as specified in the JSF specification.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+ Defines a composition that optionally uses a template, as outlined in the description of the ui tag library. Multiple
+ compositions can use the same template, thus encapsulating and reusing layout. JSF disregards everything outside of the
+ composition, which lets developers embed compositions in well-formed XHTML pages that can be viewed in an XHTML viewer,
+ such as Dreamweaver or a browser, without including extraneous elements such as head
and body
.
+
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+
+
+ <body>
+
+ THIS LINE, AND EVERYTHING ABOVE IT IS DISREGARDED BY JSF
+ <ui:composition template="/layout.xhtml">
+
+
+ <ui:define name="title">#{msgs.contactsWindowTitle}</ui:define>
+ <ui:define name="heading">#{msgs.contactsHeading}</ui:define>
+
+
+ <ui:define name="content">
+ <ui:include src="contactsTable.xhtml" />
+
+ </ui:define>
+
+ </ui:composition>
+ THIS LINE, AND EVERYTHING BELOW IT IS DISREGARDED BY JSF
+
+
+ </body>
+</html>
+
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+ A URI that points to a template, also known as a layout, that inserts pieces of the page defined in the composition.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+ When the ui:debug
tag is placed in an XHTML page, it creates a component and adds it to the
+ component tree. That debug component captures debugging information, namely the current state of the component
+ tree and the scoped variables in the application, when the component is rendered. If the user presses CTRL + SHIFT + d,
+ JSF opens a window that shows the debugging information captured by the debug component.
+
+
+
+ Typically, the best place to put the ui:debug
tag is in an application's main template, which
+ lets developers enable or disable viewing of debugging information in one central location. Additionally, page
+ authors can change the hotkey (which by default is CTRL + SHIFT + d, where the d stands for debug) to CTRL + SHIFT + ?,
+ where ? represents the key specified as the value of the hotkey
attribute.
+
+
+
+ You can use the rendered
attribute to control whether the debug component is rendered.
+ Using an EL expression as the value for the rendered
attribute lets you control whether
+ debug output is enabled for multiple views based on a single bean property.
+
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+ Defines a single character, that, pressed in conjunction with CTRL and SHIFT, will display the JSF debug window.
+ By default, the hotkey is 'd'. The value for the hotkey attribute cannot be an EL expression.
+
+
+
+
+ ]]>
+
+
+
+
+
+
+ Controls whether the debug component is rendered. Valid values for this attribute are either the strings "true" or "false" or an EL expression that evaluates to either "true" or "false".
If this attribute's value is "false" or the value is an EL expression that evaluates to "false", the debug component is not rendered in the page, the hotkey attribute is disregarded, and users cannot open the debugging information window with a hotkey.
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+The define
tag defines content that is inserted into a page by a template. The define
tag can be used inside ui:composition
, ui:component
, ui:decorate
, and ui:fragment
tags.
+
+Content defined by the define
tag can be inserted into a page by using ui:insert
.
+
+
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+Assigns a name to the content inside a define
tag. That name is used by corresponding ui:insert
tags in a template that insert the named content into a page.
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ The decorate
tag is identical to the composition
tag, except that ui:decorate
, unlike ui:composition
, does not disregard all content outside of the tag. The decorate
is useful when you want to decorate some content in a page, for example, you might want to decorate a list of items, like this:
+
+
+
+<ui:decorate template="/layout.xhtml">
+ <ui:define name="listHeading">
+
+ <ui:include src="shared/listHeading.xhtml"/>
+ </ui:define>
+
+ <c:forEach items="#{items}" var="item">
+
+ ...
+ </c:forEach>
+ ...
+</ui:decorate>
+
+
+Because JSF does not disregard everything outside of the ui:decorate
tag, ui:decorate
can
+be used to decorate pieces of a page.
+
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+A URI that points to a template, also known as a layout, that inserts pieces of the page defined in the decorator.
+
+
+
+ ]]>
+
+
+
+
+
+
+
+The fragment
tag is identical to the component
tag, except that ui:fragment
, unlike ui:component
, JSF does not disregard all content outside of the tag.
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+The identifier of the component that JSF inserts into the component tree. If an identifier is
+not explicitly specified by the page author, JSF will assign an identifier based on the algorithm
+that it uses for all components.
+
+
+ ]]>
+
+
+
+
+
+Binds the component to a backing bean property, as specified in the JSF specification.
+
+
+ ]]>
+
+
+
+
+
+
+
+Use this tag—which is very similar to JSP's jsp:include
—to encapsulate and reuse content among
+multiple XHTML pages. There are three things this tag can include: plain XHTML, and XHTML pages that have either a composition
tag or a component
tag.
+
+You supply a filename, through ui:include
's src
attribute for JSF to include. That
+filename is relative to the XHTML file that was rendered as a result of the last request. So, for example, if JSF loaded
+the view login.xhtml
, and that file included pageDecorations/header.xhtml
, and
+pageDecorations/header.xhtml
included companyLogo.xhtml
, then companyLogo.xhtml
will
+not be found if it's in the pageDecorations
directory, because companyLogo.xhtml
has to be
+in the same directory as login.xhtml
.
+
+
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+The filename of an XHTML page to include. The filename is relative to the XHTML page that was originally loaded.
+
+
+ ]]>
+
+
+
+
+
+
+
+Inserts content into a template. That content is defined—with the ui:define
tag— in either a ui:composition
, ui:component
, ui:decorate
, or ui:fragment
.
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+Use this tag to pass parameters to an included file (using ui:include
), or a template
+(linked to either a composition or decorator). Embed ui:param
tags in either ui:include
,
+ui:composition
, or ui:decorate
to pass the parameters.
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+The name of the parameter.
+
+
+ ]]>
+
+
+
+
+
+The value of the parameter. Notice that this attribute's value can be an EL expression, which
+means that you can pass objects to either an included file or a template.
+
+ ]]>
+
+
+
+
+
+
+
+
+Use this tag as an alternative to h:dataTable
or
+c:forEach
, especially when you are using the
+jsfc
feature of Facelets. You can specify this component as
+the value of the jsfc
attribute, like this:
+<div... jsfc="ui:repeat" value="#{contacts}" var="contact">...
+
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+Read-write property setting the offset from the beginning of the
+collection from which to start the iteration. If not set, this offset
+is not considered and iteration will start at the beginning of the
+collection.
+
+
+
+ ]]>
+
+
+
+
+
+
+Read-write property setting the size of the collection to iterate.
+If this value is less than the actual size of the collection, a
+FacesException
must be thrown.
+
+
+
+ ]]>
+
+
+
+
+ Iteration
+ will only process every step items of the collection,
+ starting with the first one.
+
+ ]]>
+
+
+
+
+
+
+The name of a collection of items that this tag iterates over. The
+collection may be a List
, array
,
+java.sql.ResultSet
, or an individual java Object. If the
+collection is null, this tag does nothing.
+
+
+
+ ]]>
+
+
+
+
+ Name of the
+ exported scoped variable for the current item of the
+ iteration. This scoped variable has nested
+ visibility. Its type depends on the object of the
+ underlying collection
+
+ ]]>
+
+
+
+
+ Name of the
+ exported request scoped variable for the status of the
+ iteration. Object is a POJO with the following read-only
+ JavaBeans properties. This scoped variable has nested
+ visibility.
+
+ begin
of type Integer
+
+ end
of type Integer
+
+ index
of type int
+
+ step
of type Integer
+
+ even
of type boolean
+
+ odd
of type boolean
+
+ first
of type boolean
+
+ last
of type boolean
+
+
+
+ ]]>
+
+
+
+
+
+
+
+Remove content from a page. This tag is often used in conjunction with the jsfc
feature of Facelets,
+to wrap additional markup. When Facelets removes markup from a page by substituting markup items that have
+a jsfc
attribute with the specified component, Facelets also removes anything in the page that
+is contained in a ui:remove
tag.
+
+
+ ]]>
+ tag-class:
+ body-content: JSP
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/html-basic-2.0.xsd b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/html-basic-2.0.xsd
new file mode 100644
index 0000000000..e7e3171459
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/html-basic-2.0.xsd
@@ -0,0 +1,7686 @@
+
+
+
+
+ This tag library contains JavaServer Faces component tags for all UIComponent + HTML RenderKit Renderer combinations defined in the JavaServer Faces Specification.
+ tlib-version: 1.2
+
+
+
+ Renders an HTML "input"
+ element.
+
+ Decode Behavior
+
+
+
+ Obtain the Map
from the "requestParameterMap"
+ property of the ExternalContext
. If the value in the
+ Map
for the value of the "clientId" property of the
+ component is null
, create a String by concatenating
+ the value of the "clientId" property of the component with the
+ String ".x" (without the quotes). Create another String in the
+ same manner, but concatenate ".y" (without the quotes). If
+ null
is the value in the Map
for both
+ Strings, return from decode()
. If the value in the
+ Map
for the value of the "clientId" property of the
+ component is not null
, get the value of the "type"
+ attribute, and convert it to lower case. If the result is equal
+ to the String "reset" (without the quotes), return from
+ decode()
. Otherwise, create a
+ javax.faces.event.ActionEvent
around the component,
+ and pass it to the queueEvent()
method of the
+ component, which must be an instance of
+ UICommand
.
+
+
+
+
+
+ Encode Behavior
+
+
+
+ Render the clientId of the component as the value of the "name"
+ attribute. Render the current value of the component as the value
+ of the "value" attribute. If "image" attribute is specified render
+ it as the value of the "src" attribute after passing it to the
+ getResourceURL()
method of the
+ ViewHandler
for this application, and passing the
+ result through the encodeResourceURL()
method of the
+ ExternalContext
. Note that calling
+ getResourceURL()
will prefix the context-root of the
+ current application if the value of the "src" attribute starts
+ with "/". When handling the "image" attribute, the value must not
+ be escaped. For example, &
must not be turned into
+ &
. If the "styleClass" attribute is
+ specified, render its value as the value of the "class" attribute.
+ If the user has specified an "onclick" attribute, append that
+ JavaScript to any existing JavaScript before rendering.
+
+ If the component being rendered by
+ this renderer has any UIParameter
children, each one
+ of them must be rendered using the renderer for component-family:
+ "javax.faces.Input" and renderer-type: "javax.faces.Hidden". For
+ discussion, this is called the hiddenRenderer. A component with
+ component-type "javax.faces.Input" must be created for local use
+ in rendering each UIParameter
child. The "id"
+ property of the temporary component must be set to the "name" of
+ the UIParameter
. The "value" property of the
+ temporary component must be set to the "value" of the
+ UIParameter
. For each UIParameter
+ child, the hiddenRenderer must have its
+ encodeBegin()
, encodeChildren()
, and
+ encodeEnd()
methods called, in order, passing the
+ temporary component as the second argument.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.CommandButtonTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing an action listener method that
+ will be notified when this component is activated by the user.
+ The expression must evaluate to a public method that takes an
+ ActionEvent parameter, with a return type of void, or to a public method that takes no
+ arguments with a return type of void. In the latter case, the
+ method has no way of easily knowing where the event came from,
+ but this can be useful in cases where a notification is needed
+ that "some action happened".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Absolute or relative URL of the
+ image to be displayed for this
+ button. If specified, this
+ "input" element will be of type
+ "image". Otherwise, it will be
+ of the type specified by the
+ "type" property with a label
+ specified by the "value"
+ property. Note
+ that if the value of this
+ attribute starts with "/", the
+ rendered value for this
+ attribute will be prefixed with
+ the context-root for this
+ application.
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Render an HTML "a" anchor
+ element that acts like a form submit button when
+ clicked.
+
+ General Behaviour
+
+ Both the encode and decode behavior require the ability to get
+ the id/name for a hidden field, which may be rendered in markup or which
+ may be programmatically added via client DOM manipulation,
+ whose value is set by the JavaScript form submit. This name must
+ be constructed as follows:
+
+
+
+ Get the clientId for the form of which this component is a
+ child.
+
+ Append
+ NamingContainer.SEPARATOR_CHAR
.
+
+ Append a constant string that is the same for all command
+ link components in the tree.
+
+
+
+ In the following text, this String is called
+ hiddenFieldName.
+
+ Decode Behavior
+
+
+
+ Obtain the "clientId" property of the component. Obtain the
+ Map
from the "requestParameterMap" property of the
+ ExternalContext
. Derive hiddenFieldName as above.
+ Get the entry in the Map
under the key that is the
+ hiddenFieldName. If the there is no entry, or the entry is the
+ empty String, or the entry is not equal to the value of the
+ "clientId" property, return immediately. If there is an entry,
+ and its value is equal to the value of the "clientId" property,
+ create a new javax.faces.event.ActionEvent
instance
+ around the component and call queueActionEvent()
on
+ the component, passing the event.
+
+
+
+
+ Encode Behavior
+
+
+
+ If the value of the disabled
attribute is
+ true
, render a span element. Render all the passthru
+ attributes and the target
attribute as pass-through
+ attributes on the span, even though the target
+ attribute will have no effect on a span. Render the current value
+ of the component as the content of the span. Return.
+
+ If the disabled
attribute is not present, or its
+ value is false
, render an HTML a
+ element. Render "#" as the value of the "href" attribute. Render
+ the current value of the component as the link text if it is
+ specified. Render JavaScript that is functionally equivalent to
+ the following as the value of the "onclick" attribute:
+
+ document.forms['CLIENT_ID']['hiddenFieldName'].value='CLIENT_ID';
+ document.forms['CLIENT_ID']['PARAM1_NAME'].value='PARAM1_VALUE';
+ document.forms['CLIENT_ID']['PARAM2_NAME'].value='PARAM2_VALUE';
+ return false;
+
+ document.forms['CLIENT_ID'].submit()" where hiddenFieldName is
+ as described above, CLIENT_ID is the clientId of the UICommand
+ component, PARAM*_NAME and PARAM*_VALUE are the names and values,
+ respectively, of any nested UIParameter children. The name and
+ the value must be URLEncoded. If an "onclick" attribute was
+ specified by the user, render this JavaScript in a function,
+ and render the user's JavaScript in a function. Render both functions
+ in a choice function as follows:
+
+ var a=function(){#USER_FUNCTION#};
+ var b=function(){#JSF_FUNCTION#};
+ return (a()==false) ? false : b();
+
+ where #USER_FUNCTION# is the user's JavaScript and
+ #JSF_FUNCTION# is the JavaScript rendered by JSF. The choice
+ function should operate such that if the user's JavaScript returns
+ true, then the rendered JavaScript will also execute.
+
+ If the "styleClass" attribute is specified, render its value as
+ the value of the "class" attribute. Render any non-UIParameter
+ output children as normal inside of the "a" element. These will
+ appear as the link text. Allow the form renderer to output a
+ single "input" element (for the entire page, regardless of how
+ many command link components are in the page) of "type" "hidden"
+ whose "name" is the value of hiddenFieldName, and which must not
+ have a "value" attribute. Multiple occurrences of command link
+ components in the tree should not cause multiple hiddenFieldName
+ hidden fields. Allow the form renderer to output an "input"
+ element of "type" "hidden" for each of the nested UIParameter
+ children, taking the name property (but not the value) from each
+ one in turn. If the "disabled" attribute is specified, do not
+ render the HTML "a" anchor element or its "href" attribute.
+ Instead, render a "span" element. If the "styleClass" attribute
+ is specified, render its value as the value of the "class"
+ attribute on the "span". Render any pass-through attributes on
+ the "span". The content of the span element comes from the value
+ of the component or its children as specified above.
+
+ If the user specified a target
attribute, its
+ value must be set using javascript since the onclick
+ handler will prevent the target attribute from being generated.
+ This must be accomplished using JavaScript that is equivalent to
+ the following.
+
+ document.forms['CLIENT_ID'].target='TARGET';
+
+ Where TARGET is the value of the target attribute on the JSP
+ tag.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.CommandLinkTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing an action listener method that
+ will be notified when this component is activated by the user.
+ The expression must evaluate to a public method that takes an
+ ActionEvent parameter, with a return type of void, or to a public method that takes no
+ arguments with a return type of void. In the latter case, the
+ method has no way of easily knowing where the event came from,
+ but this can be useful in cases where a notification is needed
+ that "some action happened".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Renders an HTML "table" element compliant with the HTML 401
+ specification. Render the "caption" facet, if present, inside a
+ "caption" element immediately below the "table" element. If the
+ "captionClass" attribute is specified, render its value as the
+ value of the "class" attribute on the "caption" element. If the
+ "captionStyle" attribute is specified, render its value as the
+ value of the "style" attribute on the "caption" element.
+ Please consult the javadoc for UIData
to
+ supplement this specification. If the "styleClass" attribute is
+ specified, render its value as the value of the "class" attribute
+ on the "table" element. Any pass-through attributes are also
+ rendered on the "table" element.
+
+ Column Groups
+
+
+
+ If the UIData
component has a "colgroups" facet,
+ render its contents. Consistent with the rules of facets in
+ general, this facet must have only one child. In general, this
+ will be a panel group
component that will contain
+ colgroup
and col
elements per the HTML
+ Table specification. Use of column grouping can improve
+ accessibility. This facet must be rendered before the table
+ header and footer.
+
+
+
+ Rendering the header
+
+
+
+ If the UIData
component has a "header" facet, or
+ any of the child UIColumn
components has a "header"
+ facet, render a "thead" element. If the UIData
+ component has a "header" facet, encode its contents inside of "tr"
+ and "th" elements, respectively. Output the value of the
+ "headerClass" attribute of the UIData
component, if
+ present, as the value of the "class" attribute on the "th".
+ Output the number of child UIColumn
components of the
+ UIData
component as the value of the "colspan"
+ attribute on the "th". Output "colgroup" as the value of the
+ "scope" attribute on the "th" element.
+
+ If any of the child UIColumn
components has a
+ "header" facet render a "tr" element. For each
+ UIColumn
that actually has a "header" facet, render
+ it inside of a "th" element. Columns that don't have a "header"
+ facet cause an empty "th" element to be rendered. Output the
+ value of the "headerClass" attribute of the UIColumn
+ component, if present, as the value of the "class" attribute on
+ the "th". If the "headerClass" attribute of the UIColumn
+ component is not present, output the value of the "headerClass"
+ attribute of the UIData
component, if present, as
+ the value of the "class" attribute on the "th". Output "col" as
+ the value of the "scope" attribute on the "th" element.
+
+
+ Close out the "thead" element.
+
+
+
+ Rendering the footer
+
+
+
+ Follow the same process as for the header, except replace
+ "header" with "footer", "th" with "td", "thead" with "tfoot", and
+ "headerClass" with "footerClass". Do not render any "scope"
+ attribute for the footer.
+
+
+
+ Rendering the table body
+
+
+
+ Look at the value of the "bodyrows" attribute. If present,
+ this must be a comma separated list of integers. Each entry in
+ this list is the row index of the row before which a "tbody"
+ element should be rendered.
+
+ If there was no "bodyrows" attribute, or it was empty, render a
+ "tbody" element. Keep track of the result of the "rows" property
+ on the UIData
component. Keep track of the number of
+ rows we have rendered so far. Iterate through the rows. Set the
+ "rowIndex" property of the UIData
component to be
+ correct as we iterate through the rows. Stop rendering children
+ and close out the "tbody" element if the "rowAvailable" property
+ of the UIData
returned false. If the current row
+ index is contained in the "bodyrows" attribute, check if a "tbody"
+ start element was rendered that needs to be closed, and if so,
+ close the "tbody" element. Then render a "tbody" element start.
+ Otherwise, do not render a "tbody" element.
+
+ Output a "tr" element. Output the value of the "rowClasses"
+ per the attribute description below. For each
+ UIColumn
child, if the column component has a
+ "rowHeader" attribute with a value of "true", output a "th"
+ element with a "scope" attribute with the value of "row".
+ Otherwise, if the column component has no "rowHeader" attribute,
+ or its value is false, output a "td" element. In either case
+ attach the value of the "columnClasses" attribute of the
+ UIData
component per the attribute description below.
+ Recursively encode each child of each UIColumn
child.
+ Close out the "td" or "th" element. When done with the row, close
+ out the "tr" element. When done with all the rows, close out the
+ "tbody" element.
+
+
+
+ When done rendering all the rows, set the "rowIndex" property of
+ the UIData
to -1, and close out the "table"
+ element.
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.DataTableTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Renders an HTML "form" element.
+
+ Decode Behavior
+
+
+
+ Obtain the Map
from the "requestParameterMap"
+ property of the ExternalContext
. If the map contains
+ an entry for the "clientId" of this UIForm
component,
+ call setSubmitted(true)
on the form, otherwise call
+ setSubmitted(false)
on the form.
+
+
+
+
+
+ Encode Behavior
+
+
+
+ The value of the "method" attribute must be "post". The value
+ of the "action" attribute must be the result of passing the view
+ identifier of the current view to the getActionURL()
+ method of the ViewHandler
for this application, then
+ passing that String to the encodeActionURL()
method
+ on the ExternalContext
. The value of the acceptcharset
+ attribute must be rendered as the value of "accept-charset".
+ If the "styleClass" attribute is specified, render its value as the
+ value of the "class" attribute. Render a "name"
+ attribute with a value the same as the "id" attribute as described
+ in "General Notes on
+ Encoding" regarding the "id" attribute for UIInput
+ components. Call ViewHandler.writeState()
+ before the the close of the "form" element. Render all the
+ necessary hidden fields for all commandLink instances in the page
+ just before the close of the "form" element.
+
+ Just before rendering the closing
</form>
element tag, render
+ any resources that have been targeted for this form:
+
+ - Obtain a
UIViewRoot
instance.
+ - Obtain a
List
of component resources targeted for
+ this form with a call to UIViewRoot.getComponentResources()
+ with the String "form"
as the argument.
+ - Iterate over the returned
List
of UIComponent
instances
+ and call encodeAll
on each UIComponent
instance.
+
+
+
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.FormTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Renders an HTML "img"
+ element. Render the clientId as the value of the "id"
+ attribute.
+
+
+
+
Handling the Value
+
+
+
+ If the "name" attribute is present, execute algorithm Common Algorithm for Obtaining A Resource to Render to obtain a Resource
instance. Call
+ Resource.getRequestPath()
and output the result as the
+ value of the "src" attribute on the rendered markup.
+
+ Otherwise, if the "url" attribute is present, treat its value as
+ if it was the value of the "value" attribute. Otherwise, if the
+ "value" attribute is present, render the value of the component as
+ the value of the "src" attribute, after passing it to the
+ getResourceURL()
method of the ViewHandler
+ for this application, and passing the result through the
+ encodeResourceURL()
method of the
+ ExternalContext
.
+
+ When handling the "src" attribute,
+ the value must not be escaped. For example, &
must not
+ be turned into &
. If the "styleClass"
+ attribute is specified, render its value as the value of the "class"
+ attribute.
+
+
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.GraphicImageTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The libraryName for this resource.
+ ]]>
+
+
+
+
+
+
+
+
+
+ The resourceName for this resource.
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The target area for which this resource will be rendered. For example, target="head" would cause the resource to be rendered within the head element.
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Renders an HTML "input" element of type
+ "hidden".
+
+ Decode Behavior
+
+
+
+ Encode Behavior
+
+
+
+ Render the clientId of the component as the value of the
+ "name" attribute. Render the current value of the component as
+ the value of the "value" attribute.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.InputHiddenTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+ Renders an HTML "input" element of "type" "password".
+
+ Decode Behavior
+
+
+
+ Encode Behavior
+
+
+
+
+ Render the clientId of the component as the value of the "name"
+ attribute. Render the current value of the component as the value
+ of the "value" attribute, if and only if the "redisplay" component
+ attribute is the string "true". If the "styleClass" attribute is
+ specified, render its value as the value of the "class"
+ attribute.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.InputSecretTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Renders an HTML "input"
+ element of "type" "text".
+
+ Decode Behavior
+
+
+
+ Obtain the Map
from the "requestParameterMap"
+ property of the ExternalContext
. If the
+ Map
contains an entry for the "clientId" of the
+ component, pass the value of the entry to the
+ setSubmittedValue()
method of the component, which
+ must be an instance of EditableValueHolder
.
+
+
+
+ Encode Behavior
+
+
+
+ Render the clientId of the component as
+ the value of the "name" attribute. Render the current value of
+ the component as the value of the "value" attribute. If the
+ "styleClass" attribute is specified, render its value as the value
+ of the "class" attribute.
+
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.InputTextTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Renders an HTML "textarea" element.
+
+ Decode Behavior
+
+
+
+ Encode Behavior
+
+
+
+ Render the
+ clientId as the value of the "name" attribute. Render the current
+ valu eof the component inside the "textarea"
+ element.
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.InputTextareaTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Render a single message for a specific component.
+
+ Set-up for Rendering
+
+
+
+ Obtain the "summary" and "detail" properties from
+ UIMessage
component. If not present, keep the
+ empty string as the value, respectively. Obtain the first
+ FacesMessage
to render from the component, using
+ the "for" property of the UIMessage
. This will be
+ the only message we render. Obtain the severity style for this
+ message. If the severity of the message is
+ FacesMessage.SEVERITY_INFO
, the severity style
+ comes from the value of the "infoStyle" attribute. If the
+ severity of the message is
+ FacesMessage.SEVERITY_WARN
, the severity style
+ comes from the value of the "warnStyle" attribute, and so on for
+ each of the severities, INFO, WARN, ERROR
and
+ FATAL
. The same rules apply for obtaining the
+ severity style class, but instead of "infoStyle, warnStyle", etc
+ use "infoClass, warnClass", etc. Obtain the "style",
+ "styleClass" and "layout" attributes from the
+ UIMessage
component. If we have a "style"
+ attribute and a severity style attribute, use the severity style
+ attribute as the value of the "style" attribute. If we have no
+ "style" attribute, but do have a severity style, use the
+ severity style as the value of the "style" attribute. The same
+ precedence rules apply for the style class. Obtain the value of
+ the dir
and lang
attributes.
+
+
+
+ Rendering
+
+
+
+ For the message renderer, we only render one row, for the first
+ message. For the messages renderer, we render as many rows as we
+ have messages. If any of the "dir", "lang", "style" or
+ "styleClass" attributes has a non-null value (as determined
+ above), render a "span" element, outputting the value of the
+ "style" attribute as the the value of the "style" attribute, and
+ outputting the value of the "styleClass" attribute as the value of
+ the "class" attribute on the "span" element. Output the "dir" and
+ "lang" attributes as well, if they are present. If the
+ UIMessage
has a "tooltip" attribute with the value of
+ "true", and the UIMessage
has "showSummary" and
+ "showDetail" properties with the value "true", if we haven't
+ already written out the "span", output the "summary" as the value
+ of the "title" attribute on the "span". If we haven't already
+ written out a "title" attribute, and "showSummary" is true, output
+ the summary. If "showDetail" is true, output the detail. Close
+ out the span if necessary.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.MessageTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The same as for the Message renderer, but output all the
+ messages. If the value of the "layout" attribute is "table",
+ render nested "table", "tr", and "td" elements, in that order.
+ If the value of the "layout" attribute is "list", or the "layout"
+ attribute is not specified, render nested "ul", "li" elements,
+ in that order. Output the value of the "style" attribute as the
+ value of the "style" attribute, output the value of the "styleClass"
+ attribute as the value of the "class" attribute, and output the dir
+ and lang attributes. Output these values on the "table" element or
+ the "ul" element. Output the values of the "errorStyle", "fatalStyle",
+ "infoStyle", "warnStyle" attributes as the value of the "style" attribute
+ on either the "tr" element or the "li" element. Output the values of
+ the "errorClass", "fatalClass", "infoClass", "warnClass" attributes as the
+ value of the "class" attribute on either the "tr" element or the "li"
+ element. The component is a UIMessages
, and
+ there is no "for" attribute. Therefore, use either null
+ to obtain the messages from the FacesContext
or the
+ empty string if the components "globalOnly" property is true
.
+ If the layout was "table" close out the table elements, otherwise,
+ close out the list elements.
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.MessagesTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Render parameterized text. Obtain the
+ style
, styleClass
, dir
, and
+ lang
attributees from this component. If any are
+ present, render a "span" element. Output the
+ styleClass
attribute (if present) as the value of the
+ class
attribute. Output the style
+ attribute as the value of the style
attribute.
+ Output the dir
and lang
attributes as
+ pass through attributes. Accrue a list of the values of all child
+ UIParameter
components of this component. If there
+ are one or more accumulated parameter values, convert the list of
+ parameter values to an Object
array, call
+ MessageFormat.format()
, passing the
+ value
of this component as the first argument, and
+ the array of parameter values as the second argument, and render
+ the result. Otherwise, render the value
of this
+ component unmodified.
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.OutputFormatTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: com.sun.faces.taglib.html_basic.OutputLabelTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ encodeResourceURL() method of the
+ ExternalContext
. The name of the UIParameter goes on
+ the left hand side, and the value of the UIParameter on the right
+ hand side. The name and the value must be URLEncoded. Each
+ UIParameter instance is separeted by an ampersand, as dictated in
+ the URL spec. If the "styleClass" attribute is specified, render
+ its value as the value of the "class" attribute. If the "id" attribute
+ is specified, follow the same steps as mentioned in the
+ "General
+ Notes on Encoding" regarding the "id" attribute for UIInput components.
+ If the "disabled" attribute is specified, do not render the HTML "a"
+ anchor element or the "href" element. Instead, render a "span" element.
+ If the "styleClass" attribute is specified, render its value as the value
+ of the "class" attribute on the "span". Render any pass-through attributes
+ on the "span".
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.OutputLinkTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: com.sun.faces.taglib.html_basic.OutputTextTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UIPanel component inside
+ of a "tbody" element. Render the children based on the value of
+ the "columns" attribute, creating a new row each time a "columns"
+ worth of children have been rendered. For the start of each row,
+ render a "tr" element. Output the value of the "rowClasses" per
+ the attribute description below. For each child, output a "td"
+ element, attaching the value of the "columnClasses" attribute per
+ the attribute description below. Recursively encode each child.
+ Close out the "td" element. When done with the row, close out the
+ "tr" element. If a child has "rendered==false" it is not rendered,
+ and the column counter must not be incremented.
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.PanelGridTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: com.sun.faces.taglib.html_basic.PanelGroupTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Renders an HTML "input" element of type "checkbox".
+
+ Decode Behavior
+
+
+
+ Obtain the Map
from the "requestParameterMap"
+ property of the ExternalContext
. If there is no
+ entry in the Map
for the "clientId" of this
+ component, pass "false" to the setSubmittedValue()
+ method of the component, which must be an instance of
+ EditableValueHolder
. If there is an entry, and its
+ value is equal, ignoring case and without quotes, to any of the
+ Strings: "on", "yes" or "true" pass true to the
+ setSubmittedValue()
method of the component.
+
+
+
+ Encode Behavior
+
+
+
+
+ Render the clientId of the component as the value of the "name"
+ attribute. If the current value of the component is "true",
+ output the "checked" attribute (must be rendered as checked="checked").
+ If the "styleClass" attribute is specified, render its value as the value
+ of the "class" attribute.
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.SelectBooleanCheckboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Render an HTML checkbox
+ list.
+
+ Decode Behavior
+
+
+
+ Encode Behavior
+
+
+ Render a "table" element. If the "styleClass" is specified,
+ render the value of the "styleClass" attribute as the value of the
+ "class" attribute on the "table" element. If the "style", or
+ "border" attributes are specified, pass them thru and render their values as the "style"
+ and "border" attributes on the "table", respectively. If
+ the "layout" attribute is specified, and its value is
+ "pageDirection", render the children elements vertically,
+ otherwise horizontally, in the table. If any of the children are
+ an instance of SelectItemGroup, render them as a nested table.
+ Each of the children are ultimately rendererd as follows. Render
+ an "input" element of "type" "checkbox" for each child component.
+ Render the "name" attribute on the "input" element with the value
+ of the clientId
of the component. Render an "id"
+ attribute on the "input" element. Each "id" value must be unique.
+ If the current SelectItem.isDisabled() returns true, render
+ "disabled" as the value of the "disabled" attribute. Close out
+ the "input" element. Render a "label" element. Render the "for"
+ attribute of the "label" element whose value is the corresponding
+ "input" element's "id" value. Render any "style" as the "class"
+ attribute on the "label" element. If the current checkbox would be
+ rendered as being checked, and there is a "selectedClass"
+ attribute, append a space, followed by the value of the
+ "selectedClass" attribute to any existing "class" attribute value
+ on the label element. Otherwise, render the value of the
+ "selectedClass" attribute as the value of the "class" attribute on
+ the label element. If the current checkbox would be rendered as
+ being not checked, and there is a "unselectedClass" attribute,
+ append a space, followed by the value of the "unselectedClass"
+ attribute to any existing "class" attribute value on the label
+ element. Otherwise, render the value of the "unselectedClass"
+ attribute as the value of the "class" attribute on the label
+ element. Close out the starting "label" element and render
+ the label value from SelectItem.getLabel(). Close out the "label"
+ element. As an exception to the general rules about how to handle
+ the "id" attribute, render it as an attribute on the outer "table"
+ element, the value of which is the clientId
of the
+ component per the rules at the beginning of this specification.
+ The value of the current SelectItem is rendered as the value of
+ the "value" attribute. Coerce the value of the currently rendered
+ child to the type of the parent UISelectMany value following the
+ Expression Language coercion rules, before comparing the values.
+ If the value of the enclosing UISelectMany matches the current
+ value, render "checked" as the value of the "checked" attribute.
+ See the "Rendering
+ the option elements" specification for
+ ListboxRenderer
for more detail on how to render the
+ "option" elements in this renderer.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.SelectManyCheckboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Optional
+ attribute that is a literal string that is the fully qualified
+ class name of a concrete class that implements
+ java.util.Collection
, or an EL expression that
+ evaluates to either 1. such a String, or 2. the
+ Class
object itself.
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Render an HTML option
+ list.
+
+ Decode Behavior
+
+ This section documents the decode behavior for all renderers
+ that handle UISelectMany
or UISelectOne
+ components.
+
+
+
+ Decode Behavior for
+ UISelectMany
components
+
+
+
+ Obtain the Map
from the
+ "requestParameterValuesMap" property of the
+ ExternalContext
. If the Map
contains
+ an entry for the "clientId" of the component, pass the value of
+ the entry, cast to a String []
, to the
+ setSubmittedValue()
method of the component, which
+ must be an EditableValueHolder
. If the
+ Map
does not contain an entry, create an empty
+ String
array and call
+ setSubmittedValue()
with it.
+
+ Please check the javadoc for UISelectMany.getConvertedValue()
+ for additional requirements for renderers that render this kind
+ of component.
+
+
+
+ Decode Behavior for
+ UISelectOne
components
+
+
+
+ Obtain the Map
from the "requestParameterMap"
+ property of the ExternalContext
. If there is a
+ Map
entry for the "clientId" property of the
+ component, pass it to the setSubmittedValue()
method
+ of the component. If the
+ Map
does not contain an entry, call
+ setSubmittedValue()
passing an empty
+ String
as the argument.
+
+
+
+ Encode Behavior
+
+
+
+ Render an HTML "select" element. Render the clientId of
+ the component as the value of the "name" attribute. If the "styleClass"
+ attribute is specified, render its value as the value of the "class"
+ attribute on the "select" element. If the component is a
+ UISelectMany
instance, render "multiple" as the value of the
+ "multiple" attribute. If the "size" attribute is specified, render its
+ value as the value of the "size" attribute. Otherwise use the number of
+ items as the value of the "size" attribute.
+
+
+
+ Rendering the "option" elements
+
+
+
+ The only valid children of this component are
+ UISelectItem
or UISelectItems
+ instances. Iterate over the children of this component, and accrue
+ a list of javax.faces.model.SelectItem
instances.
+ If the current child is a
+ SelectItem
whose noSelctionProperty
is
+ true
, and the UISelectOne
or
+ UISelectMany
parent of this option has one or more
+ selected values that are not the "no selection"
+ SelectItem
, and the component has a
+ "hideNoSelectionLabel" attribute whose value is true
,
+ then the current option, which is the "no selection" option, must
+ not be rendered. If the current child is a
+ UISelectItem
create a SelectItem
instance
+ from its itemValue, itemLabel
and
+ itemDescription
properties, add it to the list. If
+ the current child is a UISelectItems
instance, call
+ its getValue()
method. If the result is a
+ SelectItem
bean, add it to the list. If the result
+ is an array of SelectItem
beans, add each one to the
+ list. If the result is a Collection
of
+ SelectItem
beans, add each one to the list. If the
+ result is a Map
, create a SelectItem
+ bean for each entry in the Map
using the key as the
+ label, the value as the value, and null
as the
+ description. Iterate over the list of SelectItem
+ beans. If the current element is a SelectItemGroup
,
+ render an "optgroup" element with a "label" attribute, the value
+ of which is the "label" property from the current element, then
+ call getSelectItems()
and render each element as
+ below. If the current element is not a
+ SelectItemGroup
, render an "option" element. Follow
+ the conversion rules in the spec to obtain a renderable
+ String
from the "value" property of the current
+ element, render that as the value of the "value" atribute. Now it
+ is time to see if the current element is the selected value. Call
+ its getSubmittedValue()
method, casting the result to
+ an Object []
, otherwise the component must be a
+ UISelectOne
instance, call its
+ getSubmittedValue()
method and create an Object
+ []
around the result. Determine the type of the resultant
+ array if the resultant array is non-null, otherwise the type is
+ String
. Coerce the current item value to this type
+ following the Expression Language coercion rules. If the
+ resultant array is non-null, we look in the array for a value
+ that, when we pass the renderable value to its
+ equals()
method, it returns true
,
+ meaning the current element is selected. If the resultant array
+ is null
, if the component is a
+ UISelectMany
, call its getValue()
+ method. If the result is a List
obtain the values in
+ the list as an array. Otherwise, the component must be a
+ UISelectOne
instance. Call its
+ getValue()
method, which must be an Object array.
+ Look for an element in the resultant array that, 1. when we pass
+ the renderable value to its equals()
method, it
+ returns true
, or 2. if the renderable value is null,
+ and there is a null element in the array, also conclude that the
+ current element is selected. Otherwise the current element is not
+ selected. Now, if the current value is selected, write out an
+ HTML boolean property "selected". If the current
+ SelectItem.isDisabled() returns true, render "disabled" as the
+ value of the "disabled" attribute.
+
+
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.SelectManyListboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ Optional
+ attribute that is a literal string that is the fully qualified
+ class name of a concrete class that implements
+ java.util.Collection
, or an EL expression that
+ evaluates to either 1. such a String, or 2. the
+ Class
object itself.
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Render an HTML option
+ list.
+
+ Decode Behavior
+
+
+
+ Encode Behavior
+
+
+
+ Render an HTML "select" element. Render the clientId of
+ the component as the value of the "name" attribute. If the "styleClass"
+ attribute is specified, render its value as the value of the "class"
+ attribute on the "select" element. If the component
+ to be rendered is a UISelectMany, render "multiple" as the value of
+ the "multiple" attribute. Render "1" as the value of the "size"
+ attribute. See the "Rendering the option
+ elements" specification for ListboxRenderer
for
+ more detail on how to render the "option" elements in this
+ renderer.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.SelectManyMenuTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ Optional
+ attribute that is a literal string that is the fully qualified
+ class name of a concrete class that implements
+ java.util.Collection
, or an EL expression that
+ evaluates to either 1. such a String, or 2. the
+ Class
object itself.
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Render an HTML option list.
+
+ Decode Behavior
+
+
+
+ Encode Behavior
+
+
+ Render an HTML "select" element. Render the clientId of
+ the component as the value of the "name" attribute. If the "styleClass"
+ attribute is specified, render its value as the value of the "class"
+ attribute on the "select" element. If the component
+ to be rendered is a UISelectMany, render "multiple" as the value of
+ the "multiple" attribute. If the "size" attribute is specified,
+ render its value as the value of the "size" attribute. Otherwise
+ use the number of items as the value of the "size" attribute. See
+ the "Rendering the option
+ elements" specification for ListboxRenderer
for
+ more detail on how to render the "option" elements in this
+ renderer.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.SelectOneListboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Render an HTML option list.
+
+ Decode Behavior
+
+
+
+ Encode Behavior
+
+
+
+ Render an HTML "select" element. Render the clientId of the
+ component as the value of the "name" attribute. If the
+ "styleClass" attribute is specified, render its value as the value
+ of the "class" attribute on the "select" element. If the component
+ to be rendered is a UISelectMany, render "true" as the value of
+ the "multiple" attribute. Use the number of items as the value of
+ the "size" attribute. See the "Rendering
+ the option elements" specification for
+ ListboxRenderer
for more detail on how to render the
+ "option" elements in this renderer.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.SelectOneMenuTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Render a set of html
+ "input" elements of type "radio".
+
+ Decode Behavior
+
+
+
+ Encode Behavior
+
+
+
+ Render a "table" element. If the "styleClass" is specified,
+ render the value of the "styleClass" attribute as the value of the
+ "class" attribute on the "table" element. If the "style", "border"
+ attributes are specified, pass them thru and render their values as the "style"
+ and "border" attributes on the "table", respectively.. If
+ the "layout" attribute is specified, and its value is
+ "pageDirection", render the children elements vertically,
+ otherwise horizontally, in the table. If any of the children are
+ an instance of SelectItemGroup, render them as a nested table.
+ Each of the children are ultimately rendered as follows. Render
+ an "input" element of "type" "radio" for each child component.
+ Render the "name" attribute on the "input" element with the value
+ of the clientId
of the component. Render an "id"
+ attribute on the "input" element. Each "id" value must be unique.
+ If the current SelectItem.isDisabled() returns true, render
+ "disabled" as the value of the "disabled" attribute. Close out
+ the "input" element. Render a "label" element. Render the "for"
+ attribute of the "label" element whose value is the corresponding
+ "input" element's "id" value. Render any "style" as the "class"
+ attribute on the "label" element. Close out the starting "label"
+ element and render the label value from SelectItem.getLabel().
+ Close out the "label" element. As an exception to the general
+ rules about how to handle the "id" attribute, render it as an
+ attribute on the outer "table" element, the value of which is the
+ clientId
of the component per the rules at the
+ beginning of this specification. Coerce the value of the
+ currently rendered child to the type of the parent UISelectOne
+ value using the Expression Language coercion rules before
+ comparing the values. If the value of the currently rendered
+ child is equal to the value of the parent UISelectOne, render an
+ appropriate HTML boolean value indicating "checked" for the
+ enclosing "input". See the "Rendering
+ the option elements" specification for
+ ListboxRenderer
for more detail on how to render the
+ "option" elements in this renderer.
+
+
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.SelectOneRadioTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MethodExpression representing a value change listener method
+ that will be notified when a new value has been set for this
+ input component. The expression must evaluate to a public
+ method that takes a ValueChangeEvent
parameter,
+ with a return type of void, or
+ to a public method that takes no arguments with a return type
+ of void. In the latter case, the method has no way of easily
+ knowing what the new value is, but this can be useful in cases
+ where a notification is needed that "this value
+ changed".
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Renders a UIComponent that represents a single column of data within a parent UIData
component.
+ ]]>
+ tag-class: com.sun.faces.taglib.html_basic.ColumnTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_core_2_1.xsd b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_core_2_1.xsd
new file mode 100644
index 0000000000..93c0b1206a
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_core_2_1.xsd
@@ -0,0 +1,1620 @@
+
+
+
+
+
+
+
+
+ This tag library implements the standard JSF core tags for Facelets.
+ display-name: JSF Core Facelets Tag Library.
+ tlib-version: 2.1
+ short-name: f
+
+
+
+
+
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+See the javadocs for interface NamingContainer for further details.
+]]>
+ tag-class: org.apache.myfaces.taglib.core.SubviewTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.core.ViewParamTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+]]>
+ tag-class: org.apache.myfaces.taglib.core.ParamTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
+
+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
+
]]>
+ tag-class: org.apache.myfaces.taglib.core.SelectItemTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BeanValidator is a {@link javax.faces.validator.Validator}
+that doesn't do any validation itself, but delegates validation logic to
+Bean Validation.
+]]>
+ tag-class: $component.tagClass
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF Specification]]>
+ tag-class: org.apache.myfaces.taglib.core.ValidateDoubleRangeTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF Specification]]>
+ tag-class: org.apache.myfaces.taglib.core.ValidateLengthTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF Specification]]>
+ tag-class: org.apache.myfaces.taglib.core.ValidateLongRangeTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RegexValidator 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
+ java.util.regex
.
+
+
+
+ The following algorithm is implemented:
+
+
+
+ - If the passed value is
null
, exit immediately.
+ -
+ If the passed value is not a String, exit with a {@link #NOT_MATCHED_MESSAGE_ID}
+ error message.
+
+ -
+ If no pattern has been set, or pattern resolves to
null
or an
+ empty String, throw a {@link javax.faces.validator.ValidatorException}
+ with a {@link #PATTERN_NOT_SET_MESSAGE_ID} message.
+
+ -
+ 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.
+
+ -
+ If a
pattern
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.
+
+
]]>
+ tag-class: org.apache.myfaces.taglib.core.ValidateRegexTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: $component.tagClass
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+Register an ActionListener instance on the UIComponent associated with the closest parent UIComponent custom action.
+
+See javax.faces.event.ActionListener
+See javax.faces.component.ActionSource
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ActionListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
+
+According to the documentation, the tag handler implementing this tag should meet
+the following conditions:
+
+
+- Since this tag attach objects to UIComponent instances, and those instances
+implements Behavior interface, this component should implement
+BehaviorHolderAttachedObjectHandler interface.
+- f:ajax does not support binding property. In theory we should do something similar
+to f:convertDateTime tag does: extends from ConverterHandler and override setAttributes
+method, but in this case BehaviorTagHandlerDelegate has binding property defined, so
+if we extend from BehaviorHandler we add binding support to f:ajax.
+- This tag works as a attached object handler, but note on the api there is no component
+to define a target for a behavior. See comment inside apply() method.
+
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.AjaxHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
+
+See the javadoc for UIComponent.getAttributes for more details.
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
Sets the specified name and attribute on the parent UIComponent. If the "value" specified is not a literal, it will
+instead set the ValueExpression on the UIComponent.
+
+See javax.faces.component.UIComponent#getAttributes()
+See javax.faces.component.UIComponent#setValueExpression(java.lang.String, javax.el.ValueExpression)
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.AttributeHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.AttributesHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+ JSF SpecificationRegister a DateTimeConverter instance on the UIComponent associated with the closest parent UIComponent custom
+action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ConvertDateTimeHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Register a named Converter instance on the UIComponent associated with the closest parent UIComponent custom action.]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ConvertDelegateHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF SpecificationRegister a NumberConverter instance on the UIComponent associated with the closest parent UIComponent custom action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ConvertNumberHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.EventHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF SpecificationRegister a named facet on the UIComponent associated with the closest parent UIComponent custom action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.FacetHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
+
+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.
+
Load a resource bundle localized for the Locale of the current view, and expose it (as a Map) in the request
+attributes of the current request.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.LoadBundleHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.PassThroughAttributeHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.PassThroughAttributesHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+ null]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.PhaseListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ResetValuesActionListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values
+or EL expressions.
+
+
+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
+
null
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.SelectItemsHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ null]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.SetPropertyActionListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+Commonly associated with an h:inputText entity, but may be applied to any input component.
+
+
+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 <i>method</i> (rather than a registered validation type, as this tag does).
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
Register a named Validator instance on the UIComponent associated with the closest parent UIComponent custom
+action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ValidateDelegateHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
Register an ValueChangeListener instance on the UIComponent associated with the closest parent UIComponent custom
+action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ValueChangeListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for f:verbatim]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.VerbatimHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
+
+See the javadoc for this class in the JSF
+Specification for further details.
+
Container for all JavaServer Faces core and custom component actions used on a page.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ViewHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+Defaults to the default locale specified in the faces configuration file.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ViewMetadataHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.WebsocketHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_core_2_2.xsd b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_core_2_2.xsd
new file mode 100644
index 0000000000..5ee96eaa5c
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_core_2_2.xsd
@@ -0,0 +1,1620 @@
+
+
+
+
+
+
+
+
+ This tag library implements the standard JSF core tags for Facelets.
+ display-name: JSF Core Facelets Tag Library.
+ tlib-version: 2.2
+ short-name: f
+
+
+
+
+
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+See the javadocs for interface NamingContainer for further details.
+]]>
+ tag-class: org.apache.myfaces.taglib.core.SubviewTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.core.ViewParamTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+]]>
+ tag-class: org.apache.myfaces.taglib.core.ParamTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
+
+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
+
]]>
+ tag-class: org.apache.myfaces.taglib.core.SelectItemTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BeanValidator is a {@link javax.faces.validator.Validator}
+that doesn't do any validation itself, but delegates validation logic to
+Bean Validation.
+]]>
+ tag-class: $component.tagClass
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF Specification]]>
+ tag-class: org.apache.myfaces.taglib.core.ValidateDoubleRangeTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF Specification]]>
+ tag-class: org.apache.myfaces.taglib.core.ValidateLengthTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF Specification]]>
+ tag-class: org.apache.myfaces.taglib.core.ValidateLongRangeTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RegexValidator 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
+ java.util.regex
.
+
+
+
+ The following algorithm is implemented:
+
+
+
+ - If the passed value is
null
, exit immediately.
+ -
+ If the passed value is not a String, exit with a {@link #NOT_MATCHED_MESSAGE_ID}
+ error message.
+
+ -
+ If no pattern has been set, or pattern resolves to
null
or an
+ empty String, throw a {@link javax.faces.validator.ValidatorException}
+ with a {@link #PATTERN_NOT_SET_MESSAGE_ID} message.
+
+ -
+ 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.
+
+ -
+ If a
pattern
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.
+
+
]]>
+ tag-class: org.apache.myfaces.taglib.core.ValidateRegexTag
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: $component.tagClass
+ body-content: empty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+Register an ActionListener instance on the UIComponent associated with the closest parent UIComponent custom action.
+
+See javax.faces.event.ActionListener
+See javax.faces.component.ActionSource
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ActionListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
+
+According to the documentation, the tag handler implementing this tag should meet
+the following conditions:
+
+
+- Since this tag attach objects to UIComponent instances, and those instances
+implements Behavior interface, this component should implement
+BehaviorHolderAttachedObjectHandler interface.
+- f:ajax does not support binding property. In theory we should do something similar
+to f:convertDateTime tag does: extends from ConverterHandler and override setAttributes
+method, but in this case BehaviorTagHandlerDelegate has binding property defined, so
+if we extend from BehaviorHandler we add binding support to f:ajax.
+- This tag works as a attached object handler, but note on the api there is no component
+to define a target for a behavior. See comment inside apply() method.
+
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.AjaxHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
+
+See the javadoc for UIComponent.getAttributes for more details.
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
Sets the specified name and attribute on the parent UIComponent. If the "value" specified is not a literal, it will
+instead set the ValueExpression on the UIComponent.
+
+See javax.faces.component.UIComponent#getAttributes()
+See javax.faces.component.UIComponent#setValueExpression(java.lang.String, javax.el.ValueExpression)
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.AttributeHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.AttributesHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+ JSF SpecificationRegister a DateTimeConverter instance on the UIComponent associated with the closest parent UIComponent custom
+action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ConvertDateTimeHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Register a named Converter instance on the UIComponent associated with the closest parent UIComponent custom action.]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ConvertDelegateHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF SpecificationRegister a NumberConverter instance on the UIComponent associated with the closest parent UIComponent custom action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ConvertNumberHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.EventHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JSF SpecificationRegister a named facet on the UIComponent associated with the closest parent UIComponent custom action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.FacetHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
+
+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.
+
Load a resource bundle localized for the Locale of the current view, and expose it (as a Map) in the request
+attributes of the current request.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.LoadBundleHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.PassThroughAttributeHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.PassThroughAttributesHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+ null]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.PhaseListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ResetValuesActionListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values
+or EL expressions.
+
+
+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
+
null
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.SelectItemsHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ null]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.SetPropertyActionListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+Commonly associated with an h:inputText entity, but may be applied to any input component.
+
+
+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 <i>method</i> (rather than a registered validation type, as this tag does).
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
Register a named Validator instance on the UIComponent associated with the closest parent UIComponent custom
+action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ValidateDelegateHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
Register an ValueChangeListener instance on the UIComponent associated with the closest parent UIComponent custom
+action.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ValueChangeListenerHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for f:verbatim]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.VerbatimHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Unless otherwise specified, all attributes accept static values or EL expressions.
+
+
+See the javadoc for this class in the JSF
+Specification for further details.
+
Container for all JavaServer Faces core and custom component actions used on a page.
]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ViewHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+Defaults to the default locale specified in the faces configuration file.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.ViewMetadataHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.core.WebsocketHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_html_2_1.xsd b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_html_2_1.xsd
new file mode 100644
index 0000000000..c636ef7f11
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_html_2_1.xsd
@@ -0,0 +1,6965 @@
+
+
+
+
+
+
+
+
+ This tag library implements the standard JSF HTML tags for Facelets.
+ display-name: JSF HTML Facelets Tag Library.
+ short-name: h
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputHiddenTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlColumnTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlCommandButtonTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlCommandLinkTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlCommandScriptTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This component may have nested facets with names "header" and "footer"
+to specify header and footer rows.
+
+
+The non-facet children of this component are expected to be
+h:column components which describe the columns of the table.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlDataTableTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The value referenced by the EL expression can be of any type.
+
+
+- A value of type DataModel is used directly.
+- Array-like parameters of type array-of-Object, java.util.List, java.sql.ResultSet or
+javax.servlet.jsp.jstl.sql.Result are wrapped in a corresponding DataModel that knows how to iterate over the
+elements.
+- Other values are wrapped in a DataModel as a single row.
+
+
+Note in particular that unordered collections, eg Set are not supported. Therefore if the value expression
+references such an object then the table will be considered to contain just one element - the collection itself.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+Specify zero to display all rows from the "first" row to the end of available data.
+]]>
+
+
+
+
+
+
+During rendering of child components of this UIData, the variable with this name can be read to learn what the
+"rowData" object for the row currently being rendered is.
+
+
+This value must be a static value, ie an EL expression is not permitted.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlFormTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The value attribute specifies the url of the image to be displayed;
+see the documentation for attribute "url" for more details.
+]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlGraphicImageTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+If the URL starts with a '/', it is relative to the context path of the web application.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputFileTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputSecretTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputTextTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputTextareaTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlMessageTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This is a required property on the component.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+If globalOnly = true, only global messages, that have no
+associated clientId, will be displayed.
+else if there is a "for" attribute, only messages that are
+assigned to the component referenced by the "for" attribute
+are displayed.
+else all messages are displayed.
+]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlMessagesTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlOutputFormatTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlOutputLabelTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlOutputLinkTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlOutputTextTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Children of this element are rendered as cells in the table, filling
+rows from left to right. Facets named "header" and "footer" are optional
+and specify the content of the thead and tfoot rows, respectively.
+]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlPanelGridTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlPanelGroupTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Renders as an HTML input tag with its type set to "checkbox", and
+its name attribute set to the id. The "checked" attribute is rendered
+if the value of this component is true.
+]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectBooleanCheckboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This is presented as a table with one cell per available option; each cell contains a
+checkbox and the option's label. The "layout" attribute determines whether the checkboxes
+are laid out horizontally or vertically.
+
+
+The set of available options is defined by adding child
+f:selectItem or f:selectItems components to this component.
+
+
+The value attribute must be a value-binding expression to a
+property of type List, Object array or primitive array. That
+"collection" is expected to contain objects of the same type as
+SelectItem.getValue() returns for the child SelectItem objects.
+On rendering, any child whose value is in the list will be
+selected initially. During the update phase, the property setter
+is called to replace the original collection with a completely
+new collection object of the appropriate type. The new collection
+object contains the value of each child SelectItem object that
+is currently selected.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectManyCheckboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The set of available options is defined by adding child
+f:selectItem or f:selectItems components to this component.
+
+
+The list is rendered as an HTML select element. The "multiple"
+attribute is set on the element and the size attribute is set to
+the provided value, defaulting to the number of items in the list
+if no value is provided. If the size is set to 1, then a
+"drop-down" list (aka "combo-box") is presented, though if this is
+the intention then a selectManyMenu should be used instead.
+
+
+The value attribute must be a value-binding expression to a
+property of type List, Object array or primitive array. That
+"collection" is expected to contain objects of the same type as
+SelectItem.getValue() returns for the child SelectItem objects.
+On rendering, any child whose value is in the list will be
+selected initially. During the update phase, the property is set
+to contain a "collection" of values for those child SelectItem
+objects that are currently selected.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectManyListboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The set of available options is defined by adding child
+f:selectItem or f:selectItems components to this component.
+
+
+Renders as an HTML select element, with the choices made up of
+child f:selectItem or f:selectItems elements. The multiple
+attribute is set and the size attribute is set to 1.
+
+
+The value attribute must be a value-binding expression to a
+property of type List, Object array or primitive array. That
+"collection" is expected to contain objects of the same type as
+SelectItem.getValue() returns for the child SelectItem objects.
+On rendering, any child whose value is in the list will be
+selected initially. During the update phase, the property is set
+to contain a "collection" of values for those child SelectItem
+objects that are currently selected.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectManyMenuTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Rendered as a listbox with the MULTIPLE attribute set to false.
+
+
+The available choices are defined via child f:selectItem or
+f:selectItems elements. The size of the listbox defaults to the
+number of available choices; if size is explicitly set to a
+smaller value, then scrollbars will be rendered. If size is set
+to 1 then a "drop-down menu" (aka "combo-box") is rendered, though
+if this is the intent then selectOneMenu should be used instead.
+
+
+The value attribute of this component is read to determine
+which of the available options is initially selected; its value
+should match the "value" property of one of the child SelectItem
+objects.
+
+
+On submit of the enclosing form, the value attribute's bound
+property is updated to contain the "value" property from the
+chosen SelectItem.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectOneListboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Renders a drop-down menu (aka "combo-box") containing a set of
+choices, of which only one can be chosen at a time. The available
+choices are defined via child f:selectItem or f:selectItems
+elements.
+
+
+The value attribute of this component is read to determine
+which of the available options is initially selected; its value
+should match the "value" property of one of the child SelectItem
+objects.
+
+
+On submit of the enclosing form, the value attribute's bound property
+is updated to contain the "value" property from the chosen SelectItem.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectOneMenuTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Renders as an HTML table element, containing an input element for
+each child f:selectItem or f:selectItems elements. The input
+elements are rendered as type radio.
+
+
+The value attribute of this component is read to determine
+which of the available options is initially selected; its value should
+match the "value" property of one of the child SelectItem objects.
+
+
+On submit of the enclosing form, the value attribute's bound property
+is updated to contain the "value" property from the chosen SelectItem.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectOneRadioTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This tag is backed using a javax.faces.component.UIOutput component instance.
+In other words, instances of this component class are created when it is resolved
+a Resource annotation, so there is no concrete class or specific tag handler for it,
+but there exists a concrete renderer for it.
+]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.html.HtmlOutputScriptHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This tag is backed using a javax.faces.component.UIOutput component instance.
+In other words, instances of this component class are created when it is resolved
+a Resource annotation, so there is no concrete class or specific tag handler for it,
+but there exists a concrete renderer for it.
+]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.html.HtmlOutputStylesheetHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_html_2_2.xsd b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_html_2_2.xsd
new file mode 100644
index 0000000000..eb98f8b56c
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_html_2_2.xsd
@@ -0,0 +1,6965 @@
+
+
+
+
+
+
+
+
+ This tag library implements the standard JSF HTML tags for Facelets.
+ display-name: JSF HTML Facelets Tag Library.
+ short-name: h
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputHiddenTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlColumnTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlCommandButtonTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlCommandLinkTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlCommandScriptTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+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.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This component may have nested facets with names "header" and "footer"
+to specify header and footer rows.
+
+
+The non-facet children of this component are expected to be
+h:column components which describe the columns of the table.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlDataTableTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The value referenced by the EL expression can be of any type.
+
+
+- A value of type DataModel is used directly.
+- Array-like parameters of type array-of-Object, java.util.List, java.sql.ResultSet or
+javax.servlet.jsp.jstl.sql.Result are wrapped in a corresponding DataModel that knows how to iterate over the
+elements.
+- Other values are wrapped in a DataModel as a single row.
+
+
+Note in particular that unordered collections, eg Set are not supported. Therefore if the value expression
+references such an object then the table will be considered to contain just one element - the collection itself.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+Specify zero to display all rows from the "first" row to the end of available data.
+]]>
+
+
+
+
+
+
+During rendering of child components of this UIData, the variable with this name can be read to learn what the
+"rowData" object for the row currently being rendered is.
+
+
+This value must be a static value, ie an EL expression is not permitted.
+
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlFormTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The value attribute specifies the url of the image to be displayed;
+see the documentation for attribute "url" for more details.
+]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlGraphicImageTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+If the URL starts with a '/', it is relative to the context path of the web application.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputFileTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputSecretTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputTextTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlInputTextareaTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlMessageTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This is a required property on the component.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+If globalOnly = true, only global messages, that have no
+associated clientId, will be displayed.
+else if there is a "for" attribute, only messages that are
+assigned to the component referenced by the "for" attribute
+are displayed.
+else all messages are displayed.
+]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlMessagesTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlOutputFormatTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlOutputLabelTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlOutputLinkTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlOutputTextTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Children of this element are rendered as cells in the table, filling
+rows from left to right. Facets named "header" and "footer" are optional
+and specify the content of the thead and tfoot rows, respectively.
+]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlPanelGridTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.taglib.html.HtmlPanelGroupTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Renders as an HTML input tag with its type set to "checkbox", and
+its name attribute set to the id. The "checked" attribute is rendered
+if the value of this component is true.
+]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectBooleanCheckboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This is presented as a table with one cell per available option; each cell contains a
+checkbox and the option's label. The "layout" attribute determines whether the checkboxes
+are laid out horizontally or vertically.
+
+
+The set of available options is defined by adding child
+f:selectItem or f:selectItems components to this component.
+
+
+The value attribute must be a value-binding expression to a
+property of type List, Object array or primitive array. That
+"collection" is expected to contain objects of the same type as
+SelectItem.getValue() returns for the child SelectItem objects.
+On rendering, any child whose value is in the list will be
+selected initially. During the update phase, the property setter
+is called to replace the original collection with a completely
+new collection object of the appropriate type. The new collection
+object contains the value of each child SelectItem object that
+is currently selected.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectManyCheckboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The set of available options is defined by adding child
+f:selectItem or f:selectItems components to this component.
+
+
+The list is rendered as an HTML select element. The "multiple"
+attribute is set on the element and the size attribute is set to
+the provided value, defaulting to the number of items in the list
+if no value is provided. If the size is set to 1, then a
+"drop-down" list (aka "combo-box") is presented, though if this is
+the intention then a selectManyMenu should be used instead.
+
+
+The value attribute must be a value-binding expression to a
+property of type List, Object array or primitive array. That
+"collection" is expected to contain objects of the same type as
+SelectItem.getValue() returns for the child SelectItem objects.
+On rendering, any child whose value is in the list will be
+selected initially. During the update phase, the property is set
+to contain a "collection" of values for those child SelectItem
+objects that are currently selected.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectManyListboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The set of available options is defined by adding child
+f:selectItem or f:selectItems components to this component.
+
+
+Renders as an HTML select element, with the choices made up of
+child f:selectItem or f:selectItems elements. The multiple
+attribute is set and the size attribute is set to 1.
+
+
+The value attribute must be a value-binding expression to a
+property of type List, Object array or primitive array. That
+"collection" is expected to contain objects of the same type as
+SelectItem.getValue() returns for the child SelectItem objects.
+On rendering, any child whose value is in the list will be
+selected initially. During the update phase, the property is set
+to contain a "collection" of values for those child SelectItem
+objects that are currently selected.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectManyMenuTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Rendered as a listbox with the MULTIPLE attribute set to false.
+
+
+The available choices are defined via child f:selectItem or
+f:selectItems elements. The size of the listbox defaults to the
+number of available choices; if size is explicitly set to a
+smaller value, then scrollbars will be rendered. If size is set
+to 1 then a "drop-down menu" (aka "combo-box") is rendered, though
+if this is the intent then selectOneMenu should be used instead.
+
+
+The value attribute of this component is read to determine
+which of the available options is initially selected; its value
+should match the "value" property of one of the child SelectItem
+objects.
+
+
+On submit of the enclosing form, the value attribute's bound
+property is updated to contain the "value" property from the
+chosen SelectItem.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectOneListboxTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Renders a drop-down menu (aka "combo-box") containing a set of
+choices, of which only one can be chosen at a time. The available
+choices are defined via child f:selectItem or f:selectItems
+elements.
+
+
+The value attribute of this component is read to determine
+which of the available options is initially selected; its value
+should match the "value" property of one of the child SelectItem
+objects.
+
+
+On submit of the enclosing form, the value attribute's bound property
+is updated to contain the "value" property from the chosen SelectItem.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectOneMenuTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Renders as an HTML table element, containing an input element for
+each child f:selectItem or f:selectItems elements. The input
+elements are rendered as type radio.
+
+
+The value attribute of this component is read to determine
+which of the available options is initially selected; its value should
+match the "value" property of one of the child SelectItem objects.
+
+
+On submit of the enclosing form, the value attribute's bound property
+is updated to contain the "value" property from the chosen SelectItem.
+
]]>
+ tag-class: org.apache.myfaces.taglib.html.HtmlSelectOneRadioTag
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+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.
+
+
+Default value: false.
+
]]>
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+
+
+The method is expected to have the prototype
+
+public void aMethod(FacesContext, UIComponent,Object)
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+The phase in which this method is invoked can be controlled via the immediate attribute.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This tag is backed using a javax.faces.component.UIOutput component instance.
+In other words, instances of this component class are created when it is resolved
+a Resource annotation, so there is no concrete class or specific tag handler for it,
+but there exists a concrete renderer for it.
+]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.html.HtmlOutputScriptHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This tag is backed using a javax.faces.component.UIOutput component instance.
+In other words, instances of this component class are created when it is resolved
+a Resource annotation, so there is no concrete class or specific tag handler for it,
+but there exists a concrete renderer for it.
+]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.jsf.html.HtmlOutputStylesheetHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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.
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_ui_2_1.xsd b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_ui_2_1.xsd
new file mode 100644
index 0000000000..95d0b5d038
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_ui_2_1.xsd
@@ -0,0 +1,368 @@
+
+
+
+
+
+
+
+
+ JSF UI Facelets Tag Library.
+ display-name: JSF UI Facelets Tag Library.
+ short-name: ui
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The component class used for this tag is
+org.apache.myfaces.view.facelets.tag.ui.ComponentRef and the
+real java class that contains this description is not used on runtime.
+]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.ComponentRefHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The component class used for this tag is
+org.apache.myfaces.view.facelets.tag.ui.ComponentRef and the
+real java class that contains this description is not used on runtime.
+]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.ComponentRefHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.CompositionHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.DecorateHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.DefineHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.IncludeHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.InsertHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.ParamHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_ui_2_2.xsd b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_ui_2_2.xsd
new file mode 100644
index 0000000000..bf4e07f6c3
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/main/resources/mergeSchemas/xsd/myfaces_facelets_ui_2_2.xsd
@@ -0,0 +1,368 @@
+
+
+
+
+
+
+
+
+ JSF UI Facelets Tag Library.
+ display-name: JSF UI Facelets Tag Library.
+ short-name: ui
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The component class used for this tag is
+org.apache.myfaces.view.facelets.tag.ui.ComponentRef and the
+real java class that contains this description is not used on runtime.
+]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.ComponentRefHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The component class used for this tag is
+org.apache.myfaces.view.facelets.tag.ui.ComponentRef and the
+real java class that contains this description is not used on runtime.
+]]>
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.ComponentRefHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.CompositionHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.DecorateHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.DefineHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.IncludeHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.InsertHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tag-class: org.apache.myfaces.view.facelets.tag.ui.ParamHandler
+ body-content: JSP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/XPathGenerationTest.java b/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/XPathGenerationTest.java
index 6fd11d1016..004e5b0245 100644
--- a/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/XPathGenerationTest.java
+++ b/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/XPathGenerationTest.java
@@ -37,7 +37,7 @@ public void testXpathAccess() throws Exception {
Path input = cobigenConfigFolder.resolve("uml.xml");
CobiGen cobigen = CobiGenFactory.create(cobigenConfigFolder.toUri());
- Object compliantInput = cobigen.read("xml", input, Charset.forName("UTF-8"));
+ Object compliantInput = cobigen.read(input, Charset.forName("UTF-8"));
List matchingTemplates = cobigen.getMatchingTemplates(compliantInput);
assertThat(matchingTemplates).isNotNull().hasSize(1);
diff --git a/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/XmlPluginIntegrationTest.java b/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/XmlPluginIntegrationTest.java
index 0112b99dad..7771e2c37c 100644
--- a/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/XmlPluginIntegrationTest.java
+++ b/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/XmlPluginIntegrationTest.java
@@ -2,9 +2,6 @@
import static com.devonfw.cobigen.test.assertj.CobiGenAsserts.assertThat;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.not;
-import static org.junit.Assert.assertThat;
import java.io.File;
import java.nio.charset.Charset;
@@ -13,23 +10,19 @@
import java.util.List;
import java.util.stream.Collectors;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.SystemUtils;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
-import org.w3c.dom.Document;
import com.devonfw.cobigen.api.CobiGen;
-import com.devonfw.cobigen.api.exception.InvalidConfigurationException;
-import com.devonfw.cobigen.api.exception.MergeException;
+import com.devonfw.cobigen.api.exception.PluginNotAvailableException;
import com.devonfw.cobigen.api.to.GenerationReportTo;
import com.devonfw.cobigen.api.to.TemplateTo;
import com.devonfw.cobigen.impl.CobiGenFactory;
+import com.devonfw.cobigen.test.assertj.GenerationReportToAssert;
import junit.framework.AssertionFailedError;
@@ -63,7 +56,7 @@ public void testSimpleUmlEntityExtraction() throws Exception {
Path configFolder = new File(testFileRootPath + "uml-classdiag").toPath();
File xmlFile = configFolder.resolve("completeUmlXmi.xml").toFile();
CobiGen cobigen = CobiGenFactory.create(configFolder.toUri());
- Object doc = cobigen.read("xml", xmlFile.toPath(), UTF_8);
+ Object doc = cobigen.read(xmlFile.toPath(), UTF_8);
File targetFolder = tmpFolder.newFolder("testSimpleUmlEntityExtraction");
// act
@@ -101,7 +94,7 @@ public void testUmlMethodAttributeExtraction() throws Exception {
Path configFolder = new File(testFileRootPath + "uml-classdiag").toPath();
File xmlFile = configFolder.resolve("completeUmlXmi.xml").toFile();
CobiGen cobigen = CobiGenFactory.create(configFolder.toUri());
- Object doc = cobigen.read("xml", xmlFile.toPath(), UTF_8);
+ Object doc = cobigen.read(xmlFile.toPath(), UTF_8);
File targetFolder = tmpFolder.newFolder("testSimpleUmlEntityExtraction");
// act
@@ -142,7 +135,7 @@ public void testUmlEntityExtraction() throws Exception {
Path configFolder = new File(testFileRootPath + "uml-classdiag").toPath();
File xmlFile = configFolder.resolve("nullMultiplicity.xml").toFile();
CobiGen cobigen = CobiGenFactory.create(configFolder.toUri());
- Object doc = cobigen.read("xml", xmlFile.toPath(), UTF_8);
+ Object doc = cobigen.read(xmlFile.toPath(), UTF_8);
File targetFolder = tmpFolder.newFolder("testSimpleUmlEntityExtraction");
// act
@@ -261,7 +254,7 @@ public void testXmlReaderIntegration_VariablesConstant() throws Exception {
}
/**
- * Regression test that the error message of cobigen-core has not be changed, which indicates a merge
+ * Regression test that the error message of cobigen-core has not been changed, which indicates a merge
* strategy to not being found. This is necessary for the tests checking the already implemented merge
* strategies to exist.
* @throws Exception
@@ -270,11 +263,10 @@ public void testXmlReaderIntegration_VariablesConstant() throws Exception {
@Test
public void testMergeStrategyNotFoundErrorMessageRegression() throws Exception {
generateTemplateAndTestOutput("xmlTestTemplate_SingleAttribute", "xmlTestOutput_SingleAttribute.txt", null);
- try {
+ GenerationReportToAssert asserts =
generateTemplateAndTestOutput("xmlTestTemplate_SingleAttribute", "xmlTestOutput_SingleAttribute.txt", null);
- } catch (InvalidConfigurationException e) {
- assertThat(e.getMessage(), containsString("No merger for merge strategy"));
- }
+
+ asserts.containsException(PluginNotAvailableException.class);
}
/**
@@ -284,13 +276,26 @@ public void testMergeStrategyNotFoundErrorMessageRegression() throws Exception {
*/
@Test
public void testMergeStrategyDefined_xmlmerge_attachTexts() throws Exception {
-
generateTemplateAndTestOutput("xmlTestTemplate_TextNodes", "xmlTestOutput_TextNodes.txt", null);
- try {
+ GenerationReportToAssert asserts =
generateTemplateAndTestOutput("xmlTestTemplate_TextNodes", "xmlTestOutput_TextNodes.txt", null);
- } catch (MergeException e) {
- assertThat(e.getMessage(), not(containsString("No merger for merge strategy")));
- }
+
+ asserts.notContainsException(PluginNotAvailableException.class);
+
+ }
+
+ /**
+ * Tests the merge strategy xmlmerge_attachTexts_validate to exist and being registered.
+ * @throws Exception
+ * test fails
+ */
+ @Test
+ public void testMergeStrategyDefined_xmlmerge_attachTexts_validate() throws Exception {
+ generateTemplateAndTestOutput("xmlTestTemplate_TextNodesValidate", "xmlTestOutput_TextNodes.txt", null);
+ GenerationReportToAssert asserts =
+ generateTemplateAndTestOutput("xmlTestTemplate_TextNodesValidate", "xmlTestOutput_TextNodes.txt", null);
+
+ asserts.notContainsException(PluginNotAvailableException.class);
}
/**
@@ -300,13 +305,25 @@ public void testMergeStrategyDefined_xmlmerge_attachTexts() throws Exception {
*/
@Test
public void testMergeStrategyDefined_xmlmerge_override_attachTexts() throws Exception {
-
generateTemplateAndTestOutput("xmlTestTemplate_SingleChild", "xmlTestOutput_SingleChild.txt", null);
- try {
+ GenerationReportToAssert asserts =
generateTemplateAndTestOutput("xmlTestTemplate_SingleChild", "xmlTestOutput_SingleChild.txt", null);
- } catch (MergeException e) {
- assertThat(e.getMessage(), not(containsString("No merger for merge strategy")));
- }
+
+ asserts.notContainsException(PluginNotAvailableException.class);
+ }
+
+ /**
+ * Tests the merge strategy xmlmerge_override_attachTexts_validate to exist and being registered.
+ * @throws Exception
+ * test fails
+ */
+ @Test
+ public void testMergeStrategyDefined_xmlmerge_override_attachTexts_validate() throws Exception {
+ generateTemplateAndTestOutput("xmlTestTemplate_SingleChildValidate", "xmlTestOutput_SingleChild.txt", null);
+ GenerationReportToAssert asserts =
+ generateTemplateAndTestOutput("xmlTestTemplate_SingleChildValidate", "xmlTestOutput_SingleChild.txt", null);
+
+ asserts.notContainsException(PluginNotAvailableException.class);
}
/**
@@ -316,13 +333,25 @@ public void testMergeStrategyDefined_xmlmerge_override_attachTexts() throws Exce
*/
@Test
public void testMergeStrategyDefined_xmlmerge() throws Exception {
-
generateTemplateAndTestOutput("xmlTestTemplate_ChildList", "xmlTestOutput_ChildList.txt", null);
- try {
+ GenerationReportToAssert asserts =
generateTemplateAndTestOutput("xmlTestTemplate_ChildList", "xmlTestOutput_ChildList.txt", null);
- } catch (MergeException e) {
- assertThat(e.getMessage(), not(containsString("No merger for merge strategy")));
- }
+
+ asserts.notContainsException(PluginNotAvailableException.class);
+ }
+
+ /**
+ * Tests the merge strategy xmlmerge_validate to exist and being registered.
+ * @throws Exception
+ * test fails
+ */
+ @Test
+ public void testMergeStrategyDefined_xmlmerge_validate() throws Exception {
+ generateTemplateAndTestOutput("xmlTestTemplate_ChildListValidate", "xmlTestOutput_ChildList.txt", null);
+ GenerationReportToAssert asserts =
+ generateTemplateAndTestOutput("xmlTestTemplate_ChildListValidate", "xmlTestOutput_ChildList.txt", null);
+
+ asserts.notContainsException(PluginNotAvailableException.class);
}
/**
@@ -332,14 +361,26 @@ public void testMergeStrategyDefined_xmlmerge() throws Exception {
*/
@Test
public void testMergeStrategyDefined_xmlmerge_override() throws Exception {
-
generateTemplateAndTestOutput("xmlTestTemplate_VariablesConstant", "xmlTestOutput_VariablesConstant.txt", null);
- try {
- generateTemplateAndTestOutput("xmlTestTemplate_VariablesConstant", "xmlTestOutput_VariablesConstant.txt",
- null);
- } catch (MergeException e) {
- assertThat(e.getMessage(), not(containsString("No merger for merge strategy")));
- }
+ GenerationReportToAssert asserts = generateTemplateAndTestOutput("xmlTestTemplate_VariablesConstant",
+ "xmlTestOutput_VariablesConstant.txt", null);
+
+ asserts.notContainsException(PluginNotAvailableException.class);
+ }
+
+ /**
+ * Tests the merge strategy xmlmerge_override_validate to exist and being registered.
+ * @throws Exception
+ * test fails
+ */
+ @Test
+ public void testMergeStrategyDefined_xmlmerge_override_validate() throws Exception {
+ generateTemplateAndTestOutput("xmlTestTemplate_VariablesConstantValidate",
+ "xmlTestOutput_VariablesConstant.txt", null);
+ GenerationReportToAssert asserts = generateTemplateAndTestOutput("xmlTestTemplate_VariablesConstantValidate",
+ "xmlTestOutput_VariablesConstant.txt", null);
+
+ asserts.notContainsException(PluginNotAvailableException.class);
}
/**
@@ -354,8 +395,8 @@ public void testMergeStrategyDefined_xmlmerge_override() throws Exception {
* @throws Exception
* if anything fails.
*/
- private void generateTemplateAndTestOutput(String templateId, String outputFileName, String expectedFileContents)
- throws Exception {
+ private GenerationReportToAssert generateTemplateAndTestOutput(String templateId, String outputFileName,
+ String expectedFileContents) throws Exception {
CobiGen cobiGen = CobiGenFactory.create(cobigenConfigFolder.toURI());
// wenn der temporäre Output Ordner breits existiert, dann wird dieser wiederverwendet.
@@ -366,16 +407,19 @@ private void generateTemplateAndTestOutput(String templateId, String outputFileN
}
// read xml File as Document
- DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
- DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
- Document inputDocument = dBuilder.parse(testinput);
+ Object inputDocument = cobiGen.read(testinput.toPath(), Charset.forName("UTF-8"));
// find matching templates and use test template for generation
List templates = cobiGen.getMatchingTemplates(inputDocument);
boolean templateFound = false;
+ GenerationReportToAssert asserts = null;
for (TemplateTo template : templates) {
if (template.getId().equals(templateId)) {
- cobiGen.generate(inputDocument, template, Paths.get(tmpFolderCobiGen.getAbsolutePath()), false);
+ GenerationReportTo report =
+ cobiGen.generate(inputDocument, template, Paths.get(tmpFolderCobiGen.getAbsolutePath()), false);
+
+ asserts = assertThat(report);
+
File expectedFile =
new File(tmpFolderCobiGen.getAbsoluteFile() + SystemUtils.FILE_SEPARATOR + outputFileName);
@@ -392,5 +436,6 @@ private void generateTemplateAndTestOutput(String templateId, String outputFileN
if (!templateFound) {
throw new AssertionFailedError("Test template not found");
}
+ return asserts;
}
}
diff --git a/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/merger/XmlPluginMergerIntegrationTest.java b/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/merger/XmlPluginMergerIntegrationTest.java
index a8993e5c40..80b01ff7ef 100644
--- a/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/merger/XmlPluginMergerIntegrationTest.java
+++ b/cobigen/cobigen-xmlplugin/src/test/java/com/devonfw/cobigen/xmlplugin/integrationtest/merger/XmlPluginMergerIntegrationTest.java
@@ -19,6 +19,7 @@
import org.w3c.dom.Element;
import org.xml.sax.InputSource;
+import com.devonfw.cobigen.api.exception.MergeException;
import com.devonfw.cobigen.api.extension.Merger;
import com.devonfw.cobigen.xmlplugin.merger.delegates.MergeType;
import com.devonfw.cobigen.xmlplugin.merger.delegates.XmlMergerDelegate;
@@ -54,9 +55,9 @@ public class XmlPluginMergerIntegrationTest {
@Before
public void setUp() {
final String mergeSchemaLocation = "src/main/resources/mergeSchemas/";
- patchPreferingMerger = new XmlMergerDelegate(mergeSchemaLocation, MergeType.PATCHATTACHOROVERWRITE);
+ patchPreferingMerger = new XmlMergerDelegate(mergeSchemaLocation, MergeType.PATCHATTACHOROVERWRITE, false);
// ((XmlLawMergerDelegate) patchPreferingMerger).setValidation(false);
- basePreferingMerger = new XmlMergerDelegate(mergeSchemaLocation, MergeType.BASEATTACHOROVERWRITE);
+ basePreferingMerger = new XmlMergerDelegate(mergeSchemaLocation, MergeType.BASEATTACHOROVERWRITE, false);
((XmlMergerDelegate) basePreferingMerger).setValidation(false);
}
@@ -273,6 +274,28 @@ public void testBeans() throws Exception {
// returned as well and needed to be considered
}
+ /**
+ * Tests that a MergeException is thrown if the validation is enabled and the validation by LeXeMe failed
+ * and canceled the merge
+ * @throws Exception
+ * should not happen
+ */
+ @Test(expected = MergeException.class)
+ public void testValidationEnabledThrowsMergeException() throws Exception {
+
+ String mergeSchemaLocation = "src/main/resources/mergeSchemas/";
+ patchPreferingMerger =
+ new XmlMergerDelegate(mergeSchemaLocation, MergeType.PATCHATTACHOROVERWRITEVALIDATE, true);
+ basePreferingMerger = new XmlMergerDelegate(mergeSchemaLocation, MergeType.BASEATTACHOROVERWRITEVALIDATE, true);
+
+ String basePath = resourcesRoot + "BaseFile_validation.xml";
+ String patchPath = resourcesRoot + "PatchFile_validation.xml";
+
+ File baseFile = new File(basePath);
+ String patchString = readFile(patchPath, charset);
+ basePreferingMerger.merge(baseFile, patchString, charset);
+ }
+
/**
* Test for Issue #189. Tests if maven configurations can be merged to accumulate dependencies
* @throws Exception
diff --git a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/integrationtest/templates/testTemplates/templates.xml b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/integrationtest/templates/testTemplates/templates.xml
index b36e8027ad..5566ed7158 100644
--- a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/integrationtest/templates/testTemplates/templates.xml
+++ b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/integrationtest/templates/testTemplates/templates.xml
@@ -5,8 +5,12 @@
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_flow.xml b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_flow.xml
index 94e5860e62..bdf8583983 100644
--- a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_flow.xml
+++ b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_flow.xml
@@ -6,7 +6,7 @@
diff --git a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_overview.xhtml b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_overview.xhtml
index 924a0452d3..6fb00bdec7 100644
--- a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_overview.xhtml
+++ b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_overview.xhtml
@@ -1,13 +1,9 @@
-
-
-
diff --git a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_validation.xml b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_validation.xml
new file mode 100644
index 0000000000..898a8dd8d9
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/BaseFile_validation.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_flow.xml b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_flow.xml
index ac0fa42104..3eaeaa3a6d 100644
--- a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_flow.xml
+++ b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_flow.xml
@@ -6,7 +6,7 @@
diff --git a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_overview.xhtml b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_overview.xhtml
index be05ca2c27..c23ad53e05 100644
--- a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_overview.xhtml
+++ b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_overview.xhtml
@@ -1,16 +1,12 @@
-
-
-
+
diff --git a/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_validation.xml b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_validation.xml
new file mode 100644
index 0000000000..b360c15390
--- /dev/null
+++ b/cobigen/cobigen-xmlplugin/src/test/resources/testdata/unittest/merger/PatchFile_validation.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/documentation/cobigen-xmlplugin.asciidoc b/documentation/cobigen-xmlplugin.asciidoc
index 43463d49be..7389da5009 100644
--- a/documentation/cobigen-xmlplugin.asciidoc
+++ b/documentation/cobigen-xmlplugin.asciidoc
@@ -124,12 +124,15 @@ In contrast to the java input reader, this xml input reader does currently not p
== Merger extensions
-The XML plugin uses the link:https://github.com/maybeec/lexeme[LeXeMe] merger library to produce semantically correct merge products. The following four merge strategies are implemented and can be configured in the `templates.xml`:
+The XML plugin uses the link:https://github.com/maybeec/lexeme[LeXeMe] merger library to produce semantically correct merge products. The merge strategies can be found in the link:https://github.com/devonfw/cobigen/blob/master/cobigen/cobigen-xmlplugin/src/main/java/com/devonfw/cobigen/xmlplugin/merger/delegates/MergeType.java#L11[MergeType enum] and can be configured in the `templates.xml` as a mergeStrategy attribute:
-* `xmlmerge`: In case of a conflict the base value is preferred
-* `xmlmerge_override`: In case of a conflict the patch value is preferred
-* `xmlmerge_attachTexts`: In case of a conflict the base value is preferred. Attributes and text nodes will be merged where possible
-* `xmlmerge_override_attachTexts`: In case of a conflict the patch value is preferred. Attributes and text nodes will be merged where possible
+* mergeStrategy 'xmlmerge'
++
+.Example of a template using the mergeStrategy `xmlmerge`
+[source,xml]
+
+
+
Currently only the document types included in LeXeMe are supported.
On how the merger works consult the link:https://github.com/maybeec/lexeme/wiki[LeXeMe Wiki].
diff --git a/documentation/master-cobigen.asciidoc b/documentation/master-cobigen.asciidoc
index eaff8472ea..99aedda53a 100644
--- a/documentation/master-cobigen.asciidoc
+++ b/documentation/master-cobigen.asciidoc
@@ -19,7 +19,7 @@ DISCLAIMER: All Cobigen plugins are compatible with the latest release of Devonf
* CobiGen v7.0.0
* CobiGen - Java Plug-in v7.0.0
-* CobiGen - XML Plug-in v4.2.0
+* CobiGen - XML Plug-in v7.0.0
* CobiGen - TypeScript Plug-in v2.4.4
* CobiGen - Property Plug-in v2.1.0
* CobiGen - Text Merger v2.1.0