blob: 90394321f7caa9518925823db2e00dd238f6eb3e [file] [log] [blame]
<?xml version="1.0" ?>
<document url="./rdc.xml" >
<!--
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<!-- More properties can be added. Good place to stick loose
data needed elsewhere. -->
<properties>
<!-- The title here overrides the title generated by the
stylesheet for the documentation HTML <title> tag-->
<title>Jakarta Project: Reusable Dialog Components (RDC) JSP Tag Library</title>
<!-- The name here is used in the HTML <meta name="author"...> tag -->
<author>Rahul Akolkar</author>
</properties>
<!-- The following defines elements uses both to create the taglib
documentation and the tag library descriptor .tld file. The
elements used are for a JSP 2.0 tld
-->
<taglib>
<!-- Version number of this tagib -->
<tlib-version>1.1 Snapshot</tlib-version>
<!-- Minimum version of JSP spec required -->
<jsp-version>2.0</jsp-version>
<!-- jakarta-taglib name of this tag library -->
<short-name>rdc</short-name>
<!-- URI of taglib -->
<uri>http://jakarta.apache.org/taglibs/rdc-1.0</uri>
<!-- The name to use in titles, etc. for the taglib -->
<display-name>Reusable Dialog Components (RDC) Tag library</display-name>
<!-- Used for generating Overview section of HTML documentation
and for the description element for a JSP 2.0 TLD.
Enter information here as straight XHTML paragraphs. Inside the
paragraphs regular XHTML can be used (but an external CSS is
encouraged). The information is copied into the generated HTML doc,
and the <p> elements are essential for that. -->
<description>
<p>
JSP-2.0 Reusable Dialog Components (RDC) --- a framework for
creating JSP taglibs that aid in rapid development of voice
and multimodal applications.
</p>
<p>
Server-side generation of HTML has proven an effective way of
generating the user interface for visual Web applications that
are implemented using server-side application frameworks such
as Struts. Over time, the effort involved in such HTML
generation has been reduced by the availability of various JSP
tag libraries that abstract away the minutiae of HTML
markup. The goal of the RDC project is to achieve for voice
applications what JSP tag libraries have already achieved in
the world of visual Web applications.</p>
<p>
The voice application space is seeing rapid growth with the
maturation of speech technologies along with the arrival of a
stable and robust voice programming model as defined in the
<a href="http://www.w3.org/TR/2004/REC-voicexml20-20040316/">W3C
VoiceXML 2.0 REC</a>. A necessary next step in mainstreaming the
development of server-side voice applications within
environments like Tomcat is the availability of the appropriate
tag libraries that help isolate the JSP developer from the
intricacies of spoken interaction. The goal is to help package
specialized speech design skills in the form of JSP tag
libraries that make it possible for JSP developers to easily
speech-enable Web applications.
</p>
</description>
<!-- The following elements are for JSP 2.0 tag libraries only,
and are not used for generating documentation yet.
They will eventually be handled by tld20.xsl.
-->
<!-- The taglib-location is used to fill in the web.xml configuration
information in the HTML doc. -->
<taglib-location>/WEB-INF/taglibs-rdc.tld</taglib-location>
<!-- The prefix is used to fill in the taglib directive
configuration information in the HTML doc. -->
<prefix>rdc</prefix>
<!-- This element must be straight text and is copied right into
the "Requirements" section of the HTML doc. -->
<requirements-info>
This custom tag library requires a servlet container
that supports the JavaServer Pages Specification, version 2.0 or
higher. The dependencies are:
<ul>
<li>jstl.jar and standard.jar (JSTL 1.1)</li>
<li>jsp-api.jar (JSP 2.0) for building custom tags</li>
<li>commons-el.jar (1.0) for delayed EL evaluation</li>
<li>struts.jar (1.2), commons-digester.jar (1.7) and
commons-beanutils.jar (1.7) for struts examples and the
rule-based directed dialog</li>
<li>commons-logging.jar (1.0.4) for logging in taglib and sample
applications</li>
<li>commons-scxml.jar (0.5) for the SCXML dialog management
strategy of the RDC group container</li>
</ul>
It may be possible to use Commons library versions lesser than the
ones quoted here.
</requirements-info>
<!-- The toc element allows the addition of document sections to
the Table of Contents list after the Tag Reference entry.
0 .. N sections can be added to the Table of Contents.
<toc href="test" name="Testing">
<p>This is a test of a TOC.</p>
</toc>
-->
<!-- The tagtoc element provides the ability to categorize the
tags in the tag library. There must be at least one tagtoc.
1 .. N tags can be nested within a tagtoc.
-->
<!-- We will have the following sections:
0) Atomic Components
1) Composite Components
2) Framework
3) Helper tags
-->
<tagtoc name="Atomic Components">
<tag-file>
<description>Collect a string of alphabets</description>
<display-name>alpha</display-name>
<name>alpha</name>
<path>/META-INF/tags/rdc/alpha.tag</path>
<example>
<![CDATA[
<rdc:alpha id="myAlpha" echo="true" />
]]>
<usage>
<comment>
<p>
See alpha-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/alpha.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a alphanumeric string</description>
<display-name>alphanum</display-name>
<name>alphanum</name>
<path>/META-INF/tags/rdc/alphanum.tag</path>
<example>
<![CDATA[
<rdc:alphanum id="myAlphanum" minLength="5" maxLength="5"
pattern="[0-9]*" confirm="true" echo="true"/>
]]>
<usage>
<comment>
<p>
See alphanum-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/alphanum.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collects a color</description>
<display-name>color</display-name>
<name>color</name>
<path>/META-INF/tags/rdc/color.tag</path>
<example>
<![CDATA[
<rdc:color id="myColor" confirm="true" echo="true" />
]]>
<usage>
<comment>
<p>
See color-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/color.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a country name</description>
<display-name>country</display-name>
<name>country</name>
<path>/META-INF/tags/rdc/country.tag</path>
<example>
<![CDATA[
<rdc:country id="myCountry" />
]]>
<usage>
<comment>
<p>
See country-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/country.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a credit card bill amount</description>
<display-name>credit card amount</display-name>
<name>creditcardAmount</name>
<path>/META-INF/tags/rdc/creditcardAmount.tag</path>
<example>
<![CDATA[
<rdc:creditcardAmount id="myCCAmount" minAmount="USD20.00"
balance="USD123.45" />
]]>
<usage>
<comment>
<p>
See creditcardAmount-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/creditcardAmount.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a credit card expiry date</description>
<display-name>credit card expiry</display-name>
<name>creditcardExpiry</name>
<path>/META-INF/tags/rdc/creditcardExpiry.tag</path>
<example>
<![CDATA[
<rdc:creditcardExpiry id="myCCExpiry" />
]]>
<usage>
<comment>
<p>
See creditcardExpiry-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/creditcardExpiry.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a credit card number</description>
<display-name>credit card number</display-name>
<name>creditcardNumber</name>
<path>/META-INF/tags/rdc/creditcardNumber.tag</path>
<example>
<![CDATA[
<rdc:creditcardNumber id="myCCNumber" confirm="true" />
]]>
<usage>
<comment>
<p>
See creditcardNumber-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/creditcardNumber.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a credit card type</description>
<display-name>credit card type</display-name>
<name>creditcardType</name>
<path>/META-INF/tags/rdc/creditcardType.tag</path>
<example>
<![CDATA[
<rdc:creditcardType id="myCCType" initial="Visa"
echo="true" />
]]>
<usage>
<comment>
<p>
See creditcardType-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/creditcardType.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a currency value</description>
<display-name>currency</display-name>
<name>currency</name>
<path>/META-INF/tags/rdc/currency.tag</path>
<example>
<![CDATA[
<rdc:currency id="myCurrency" minValue="100" echo="true" />
]]>
<usage>
<comment>
<p>
See currency-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/currency.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a date</description>
<display-name>date</display-name>
<name>date</name>
<path>/META-INF/tags/rdc/date.tag</path>
<example>
<![CDATA[
<rdc:date id="myDate" minDate="01012004"
maxDate="12312005" echo="true" />
]]>
<usage>
<comment>
<p>
See date-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/date.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a string of digits</description>
<display-name>digits</display-name>
<name>digits</name>
<path>/META-INF/tags/rdc/digits.tag</path>
<example>
<![CDATA[
<rdc:digits id="myDigits" minLength="3" maxLength="7" />
]]>
<usage>
<comment>
<p>
See digits-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/digits.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a duration</description>
<display-name>duration</display-name>
<name>duration</name>
<path>/META-INF/tags/rdc/duration.tag</path>
<example>
<![CDATA[
<rdc:duration id="myDuration" echo="true" />
]]>
<usage>
<comment>
<p>
See duration-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/duration.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a international standard book number</description>
<display-name>isbn</display-name>
<name>isbn</name>
<path>/META-INF/tags/rdc/isbn.tag</path>
<example>
<![CDATA[
<rdc:isbn id="myISBN" confirm="true" echo="true" />
]]>
<usage>
<comment>
<p>
See isbn-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/isbn.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a type of mortgage</description>
<display-name>mortgage type</display-name>
<name>mortgageType</name>
<path>/META-INF/tags/rdc/mortgageType.tag</path>
<example>
<![CDATA[
<rdc:mortgageType id="myMortgageType" echo="true" />
]]>
<usage>
<comment>
<p>
See mortgageType-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/mortgageType.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a numerical value</description>
<display-name>number</display-name>
<name>number</name>
<path>/META-INF/tags/rdc/number.tag</path>
<example>
<![CDATA[
<rdc:number id="myNumber" minValue="0"
maxValue="100" />
]]>
<usage>
<comment>
<p>
See number-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/number.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a percentage</description>
<display-name>percent</display-name>
<name>percent</name>
<path>/META-INF/tags/rdc/percent.tag</path>
<example>
<![CDATA[
<rdc:percent id="myPercent" minPercent="10"
maxPercent="75" />
]]>
<usage>
<comment>
<p>
See percent-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/percent.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect one choice from a list of options</description>
<display-name>select one</display-name>
<name>select1</name>
<path>/META-INF/tags/rdc/select1.tag</path>
<example>
<![CDATA[
<rdc:select1 id="myChoice" config="myConfig.xml"
optionsList="myOptions.xml" echo="true" />
]]>
<usage>
<comment>
<p>
See select1-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/select1.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a social security number</description>
<display-name>ssn</display-name>
<name>ssn</name>
<path>/META-INF/tags/rdc/ssn.tag</path>
<example>
<![CDATA[
<rdc:ssn id="mySSN" />
]]>
<usage>
<comment>
<p>
See ssn-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/ssn.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a time</description>
<display-name>time</display-name>
<name>time</name>
<path>/META-INF/tags/rdc/time.tag</path>
<example>
<![CDATA[
<rdc:time id="myTime" minTime="xx30x"
maxTime="xx60x" confirm="true" />
]]>
<usage>
<comment>
<p>
See time-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/time.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a major US city name</description>
<display-name>major US city</display-name>
<name>usMajorCity</name>
<path>/META-INF/tags/rdc/usMajorCity.tag</path>
<example>
<![CDATA[
<rdc:usMajorCity id="myCity" echo="true" />
]]>
<usage>
<comment>
<p>
See usMajorCity-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/usMajorCity.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a US state name</description>
<display-name>US state</display-name>
<name>usState</name>
<path>/META-INF/tags/rdc/usState.tag</path>
<example>
<![CDATA[
<rdc:usState id="myState" />
]]>
<usage>
<comment>
<p>
See usState-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/usState.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect a zip code</description>
<display-name>zip code</display-name>
<name>zipCode</name>
<path>/META-INF/tags/rdc/zipCode.tag</path>
<example>
<![CDATA[
<rdc:zipCode id="myZip" confirm="true" echo="true" />
]]>
<usage>
<comment>
<p>
See zipCode-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/zipCode.rdc</extension-element>
</tag-extension>
</tag-file>
</tagtoc>
<tagtoc name="Composite Components">
<tag-file>
<description>Collect credit card information: includes type
of card, card number, expiry date and security code</description>
<display-name>credit card information</display-name>
<name>creditcardInfo</name>
<path>/META-INF/tags/rdc/creditcardInfo.tag</path>
<example>
<![CDATA[
<rdc:creditcardInfo id="myCCInfo" mode="short" />
]]>
<usage>
<comment>
<p>
See creditcardInfo-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/creditcardInfo.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collects a date range, denoting the start and end dates
of a time period.</description>
<display-name>Date Range</display-name>
<name>dateRange</name>
<path>/META-INF/tags/rdc/dateRange.tag</path>
<example>
<![CDATA[
<rdc:dateRange id="myDateRange" />
]]>
<usage>
<comment>
<p>
See dateRange-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/dateRange.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<description>Collect mortgage information: includes type
of mortgage and percent down-payment</description>
<display-name>mortgage</display-name>
<name>mortgage</name>
<path>/META-INF/tags/rdc/mortgage.tag</path>
<example>
<![CDATA[
<rdc:mortgage id="myMortgage" />
]]>
<usage>
<comment>
<p>
See mortgage-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/mortgage.rdc</extension-element>
</tag-extension>
</tag-file>
</tagtoc>
<tagtoc name="Framework Tags">
<tag>
<description>Serve as a container for hosting multiple
RDCs and managing the dialog between them using pluggable dialog
management strategies</description>
<display-name>group container</display-name>
<name>group</name>
<tagclass>org.apache.taglibs.rdc.core.GroupTag</tagclass>
<body-content>scriptless</body-content>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The unique identifier for this group.</description>
</attribute>
<attribute>
<name>strategy</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
<description>The fully qualified class name for the
pluggable dialog management strategy.</description>
</attribute>
<attribute>
<name>config</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>The strategy specific config attribute.</description>
</attribute>
<attribute>
<name>submit</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>The URI where this container will submit its *intermediate*
results to.</description>
</attribute>
<example>
<![CDATA[
<rdc:group id="myDateTime"
strategy="org.apache.taglibs.rdc.dm.SimpleDirectedDialog">
<rdc:date id="myDate" />
<rdc:time id="myTime" />
</rdc:group>
]]>
<usage>
<comment>
<p>The rdc-examples application provides multiple
&lt;rdc:group&gt; examples. The following dialog management
strategies are included in the samples:
<ul>
<li>Simple Directed Dialog - Children execute in document
order. See:
<ul>
<li>group-test.jsp</li>
<li>nested-group-test.jsp</li>
</ul>
</li>
<li>Rule Based Directed Dialog - Children execute
according to rules defined in XML navigation rule set. See:
<ul>
<li>rulebased-nested.jsp</li>
<li>rulebased-conditions.jsp</li>
</ul>
</li>
</ul>
</p>
</comment>
</usage>
</example>
</tag>
<tag>
<description>Peek at the top element of a stack.</description>
<display-name>peek</display-name>
<name>peek</name>
<tagclass>org.apache.taglibs.rdc.core.StackPeek</tagclass>
<body-content>EMPTY</body-content>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
<description>Variable holding result of the peek operation.</description>
</attribute>
<attribute>
<name>stack</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>Variable holding target stack.</description>
</attribute>
<variable>
<name-from-attribute>var</name-from-attribute>
<variable-class>java.util.LinkedHashMap</variable-class>
<scope>AT_BEGIN</scope>
</variable>
<example>
<![CDATA[
<rdc:peek var="stateMap"
stack="${requestScope.rdcStack}"/>
]]>
</example>
</tag>
<tag>
<description>Pop the top element off a stack.</description>
<display-name>pop</display-name>
<name>pop</name>
<tagclass>org.apache.taglibs.rdc.core.StackPop</tagclass>
<body-content>EMPTY</body-content>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
<description>Variable holding value that will get popped.</description>
</attribute>
<attribute>
<name>stack</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>Variable holding target stack.</description>
</attribute>
<variable>
<name-from-attribute>var</name-from-attribute>
<variable-class>java.util.LinkedHashMap</variable-class>
<scope>AT_BEGIN</scope>
</variable>
<example>
<![CDATA[
<rdc:pop var="discard"
stack="${rdcStack}"/>
]]>
</example>
</tag>
<tag>
<description>Push element onto a stack.</description>
<display-name>push</display-name>
<name>push</name>
<tagclass>org.apache.taglibs.rdc.core.StackPush</tagclass>
<body-content>EMPTY</body-content>
<attribute>
<name>stack</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>Variable holding target stack.</description>
</attribute>
<attribute>
<name>element</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>Variable holding value being pushed.</description>
</attribute>
<example>
<![CDATA[
<rdc:push stack="${rdcStack}"
element="${dialogMap}"/>
]]>
</example>
</tag>
<tag-file>
<description>Provide the scaffolding needed
for RDCs</description>
<display-name>task tag</display-name>
<name>task</name>
<path>/META-INF/tags/rdc/task.tag</path>
<example>
<![CDATA[
<rdc:task map="${taskmap}">
<rdc:date id="myDate" confirm="true" />
</rdc:task>
]]>
<usage>
<comment>
<p>See task-test.jsp in the rdc-examples application.</p>
</comment>
</usage>
</example>
</tag-file>
</tagtoc>
<tagtoc name="Helper Tags">
<tag-file>
<name>comment</name>
<path>/META-INF/tags/rdc/comment.tagx</path>
<description>A RDC comment</description>
<display-name>comment tag</display-name>
<example>
<![CDATA[
<rdc:comment>
This is a RDC comment
</rdc:comment>
]]>
</example>
</tag-file>
<tag-file>
<name>configure</name>
<path>/META-INF/tags/rdc/configure.tag</path>
<description>Configure this component's
prompts, properties etc. In case the user does not supply
a configuration, a pre-specified default configuration is used.
</description>
<display-name>configure tag</display-name>
<example>
<![CDATA[
<rdc:configure model="${model}" config="${config}"
defaultConfig="META-INF/tags/rdc/config/date.xml" />
]]>
</example>
</tag-file>
<tag>
<description>Evaluate text containing expressions that
use the custom syntax "#{...}" as a JSP 2.0 EL expression
</description>
<display-name>expand tag</display-name>
<name>expand</name>
<tagclass>org.apache.taglibs.rdc.core.ExpandTag</tagclass>
<body-content>scriptless</body-content>
<example>
<![CDATA[
<rdc:expand>#{model.utterance}
</rdc:expand>
]]>
</example>
</tag>
<tag-file>
<name>extract-params</name>
<path>/META-INF/tags/rdc/extract-params.tag</path>
<description>Extract the necessary
parameters from the HTTP request sent by the browser.
</description>
<display-name>extract params tag</display-name>
<example>
<![CDATA[
<rdc:extract-params target="${model}"
parameters="${model.paramsMap}"/>
]]>
</example>
</tag-file>
<tag-file>
<name>fsm-confirm</name>
<path>/META-INF/tags/rdc/fsm-confirm.tag</path>
<description>The helper tag that produces the
VoiceXML for confirming the input for a component that
uses the default RDC FSM.
</description>
<display-name>fsm confirm tag</display-name>
<example>
<![CDATA[
<rdc:fsm-confirm model="${model}" />
]]>
</example>
</tag-file>
<tag-file>
<name>fsm-input</name>
<path>/META-INF/tags/rdc/fsm-input.tag</path>
<description>The helper tag that produces the
VoiceXML for collecting input for a component that
uses the default RDC FSM.
</description>
<display-name>fsm input tag</display-name>
<example>
<![CDATA[
<rdc:fsm-input model="${model}" />
]]>
</example>
</tag-file>
<tag-file>
<name>fsm-run</name>
<path>/META-INF/tags/rdc/fsm-run.tag</path>
<description>The helper tag that defines the
default RDC FSM.
</description>
<display-name>fsm run tag</display-name>
<example>
<![CDATA[
<rdc:fsm-run model="${model}" />
]]>
</example>
</tag-file>
<tag>
<description>Get the element corresponding to a given XPath from
this RDC's configuration file</description>
<display-name>get configuration element tag</display-name>
<name>get-configuration</name>
<tagclass>org.apache.taglibs.rdc.GetConfigElemTag</tagclass>
<body-content>EMPTY</body-content>
<attribute>
<name>xml</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The parsed configuration file for this component.</description>
</attribute>
<attribute>
<name>locator</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The XPath to the element of interest.</description>
</attribute>
<example>
<![CDATA[
<rdc:get-configuration xml="${parsedDoc}"
locator="/config/input/property-list/property" />
]]>
</example>
</tag>
<tag>
<description>Get the default configuration for this component.
</description>
<display-name>get default config tag</display-name>
<name>get-default-config</name>
<tagclass>org.apache.taglibs.rdc.GetDefaultConfigTag</tagclass>
<body-content>EMPTY</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The URI for the default configuration file for this component.</description>
</attribute>
<attribute>
<name>model</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The data model of this component.</description>
</attribute>
<example>
<![CDATA[
<rdc:get-default-config name="${defaultConfig}"
model="${model}" />
]]>
</example>
</tag>
<tag>
<description>Get the resource specified by the key from a
resource bundle.</description>
<display-name>get resource tag</display-name>
<name>get-resource</name>
<tagclass>org.apache.taglibs.rdc.GetResourceTag</tagclass>
<body-content>EMPTY</body-content>
<attribute>
<name>bundle</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The ResourceBundle to look into.</description>
</attribute>
<attribute>
<name>key</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The key for the property to be retrieved.</description>
</attribute>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The variable which will hold the property value.
</description>
</attribute>
<attribute>
<name>isGrammarURI</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>The ability to escape the handling specific to RDC
grammar URIs.</description>
</attribute>
<example>
<![CDATA[
<rdc:get-resource bundle="${rdcResourceBundle}"
key="my.property.key" var="myResourceString" />
]]>
</example>
</tag>
<tag-file>
<name>hello</name>
<path>/META-INF/tags/rdc/hello.tagx</path>
<description>A RDC hello world tag</description>
<display-name>hello world tag</display-name>
<example>
<![CDATA[
<rdc:hello name="whole wide world" />
]]>
</example>
</tag-file>
<tag>
<description>Include tag fragment for this instance of
the RDC template.</description>
<display-name>Include FSM fragment tag</display-name>
<name>include-fsm-fragment</name>
<tagclass>org.apache.taglibs.rdc.core.IncludeFSMFragmentTag</tagclass>
<body-content>EMPTY</body-content>
<attribute>
<name>template</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The data model of this template instance.</description>
</attribute>
<attribute>
<name>context</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The pageContext of the host tag file.</description>
</attribute>
<example>
<![CDATA[
<rdc:include-fsm-fragment template="${model}"
context="${pageContext}" />
]]>
</example>
</tag>
<tag-file>
<name>pause</name>
<path>/META-INF/tags/rdc/pause.tag</path>
<description>A possible handler for pausing an application</description>
<display-name>pause tag</display-name>
<example>
<![CDATA[
<rdc:pause id="myPause" />
]]>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/pause.rdc</extension-element>
</tag-extension>
</tag-file>
<tag-file>
<name>set-config-composite</name>
<path>/META-INF/tags/rdc/set-config-composite.tag</path>
<description>Set the page context and
configuration in composite components.
</description>
<display-name>set config composite tag</display-name>
<example>
<![CDATA[
<rdc:set-config-composite model="${model}"
context="${pageContext}" config="${config}" />
]]>
</example>
</tag-file>
<tag-file>
<name>set-grammar</name>
<path>/META-INF/tags/rdc/set-grammar.tag</path>
<description>Set the grammar using the given property from the
resource bundle as the grammar URI.</description>
<display-name>set grammar tag</display-name>
<example>
<![CDATA[
<rdc:set-grammar model="${model}" bundle="${rdcResourceBundle}"
key="my.property.key" />
]]>
</example>
</tag-file>
<tag-file>
<name>setup-results</name>
<path>/META-INF/tags/rdc/setup-results.tag</path>
<description>Set this component's
properties which influence the how and where the browser
submits the results.
</description>
<display-name>setup results tag</display-name>
<example>
<![CDATA[
<rdc:setup-results model="${model}" submit="${submit}"
minConfidence="${minConfidence}" numNBest="${numNBest}" />
]]>
</example>
</tag-file>
<tag>
<description>Play out all errors messages from the preceding
struts action.
</description>
<display-name>struts errors tag</display-name>
<name>struts-errors</name>
<tagclass>org.apache.taglibs.rdc.core.StrutsErrorsTag</tagclass>
<body-content>EMPTY</body-content>
<example>
<![CDATA[
<rdc:struts-errors />
]]>
</example>
</tag>
<tag>
<description>Submit the values of the RDCs specified in
the namelist to the struts layer.
</description>
<display-name>struts submit tag</display-name>
<name>struts-submit</name>
<tagclass>org.apache.taglibs.rdc.core.StrutsSubmitTag</tagclass>
<body-content>EMPTY</body-content>
<attribute>
<name>submit</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The URI to submit the results to (a struts mapping).</description>
</attribute>
<attribute>
<name>context</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>The pageContext of the host JSP.</description>
</attribute>
<attribute>
<name>namelist</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>The list of the RDCs whose values should be submitted.</description>
</attribute>
<attribute>
<name>clearlist</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>The list of the RDCs whose values should be cleared. Item in the list
can be a component or container.</description>
</attribute>
<attribute>
<name>dialogMap</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>The RDC dialog map used by the host JSP.</description>
</attribute>
<example>
<![CDATA[
<rdc:struts-submit submit=${self}"
context="${pageContext}" namelist="myDate myTime"/>
]]>
</example>
</tag>
<tag-file>
<name>subdialog-return</name>
<path>/META-INF/tags/rdc/subdialog-return.tag</path>
<description>Generate the appropriate VoiceXML return statement,
if called as a subdialog. The value of the RDC must be serialized
according to a standard public contract so meaningful deserialization
can take place in the host dialog (or caller).</description>
<display-name>generate return statement if called as a subdialog</display-name>
<example>
<![CDATA[
<rdc:subdialog-return model="${model}" />
]]>
</example>
</tag-file>
<tag-file>
<description>A template for rapid development of atomic RDCs</description>
<display-name>RDC template</display-name>
<name>template</name>
<path>/META-INF/tags/rdc/template.tag</path>
<example>
<![CDATA[
<rdc:template id="myTemplate" grammar="grammar/myGrammar.grxml"
config="config/myConfig.xml" />
]]>
<usage>
<comment>
<p>
See simple-template-test.jsp in the rdc-examples application.
</p>
</comment>
</usage>
</example>
<tag-extension namespace="http://jakarta.apache.org/taglibs/rdc/pre-beta/tools">
<extension-element>/META-INF/tags/rdc/template.rdc</extension-element>
</tag-extension>
</tag-file>
</tagtoc>
</taglib>
<revision release="1.1 Snapshot 005" date="08/05/2006">
<description>
This snapshot version refactors the SCXML dialog management strategy
to use Commons SCXML.
</description>
<section name="Fixes:">
<item>
Replaced the origial RDC SCXML engine with the more generic Commons
SCXML engine.
</item>
</section>
</revision>
<revision release="1.1 Snapshot 004" date="11/12/2005">
<description>
This snapshot version primarily adds subdialog support to atomic RDCs.
</description>
<section name="Additions:">
<item>
Added subdialog support to all atomic RDCs.
</item>
</section>
<section name="Fixes:">
<item>
Enhanced rdc:select1 functionality when option elements are
constructed programmatically.
</item>
<item>
Improved rdc:template documentation for grammar attribute.
</item>
</section>
</revision>
<revision release="1.1 Snapshot 003" date="10/13/2005">
<description>
This snapshot version contains some minor fixes and one deprecation.
</description>
<section name="Fixes:">
<item>
Corrected documentation to reflect deployment procedure on JSP 2.0
containers, and updated dependencies information.
</item>
<item>
Better error message if configuration file is not found (Bugzilla
issue # 36168).
</item>
<item>
Better error messages and classloading for strategy attribute of
&lt;rdc:group&gt; tag.
</item>
</section>
<section name="Deprecation:">
<item>
Deprecated DialogManager#confirm() - This behavior will be deprecated
from the next minor version (RDC 1.1), and will be removed in the next
major version (2.0) of the RDC tag library. A container should not
take on the responsibility to confirm for its children, since it does
not attempt to decipher the meaning of their public data models, and
hence, cannot produce meaningful prompts without significant
configuration. Confirmation is best handled by components.
</item>
</section>
</revision>
<revision release="1.1 Snapshot 002" date="08/10/2005">
<description>
This snapshot version mainly adds components contributed by users.
</description>
<section name="New RDC Tags:">
<item>
<a href="index.html#color">&lt;rdc:color&gt;</a> - An atomic component that
prompts the user for a color. Contributed by Mitch Warner (Bugzilla issue
# 35024).
<dir>
A demonstrative example in rdc-examples.war is:<br/>
<ul>
<li>color-test.jsp</li>
</ul>
</dir>
</item>
<item>
<a href="index.html#dateRange">&lt;rdc:dateRange&gt;</a> - A composite that
collects a two-date tuple, ensuring the second date is after the first.
Contributed by Elam Birnbaum (Bugzilla issue # 35490).
<dir>
A demonstrative example in rdc-examples.war is:<br/>
<ul>
<li>dateRange-test.jsp</li>
</ul>
</dir>
</item>
</section>
<section name="Enhancements:">
Many aesthetic changes to code and added localization for resources used by composites.
</section>
</revision>
<revision release="1.1 Snapshot 001" date="08/09/2005">
<description>
This snapshot version primarily focuses on documentation and ease of use in
tooling.
</description>
<section name="Documentation:">
<item>
Documentation files have been revised as needed, adding attributes
for newer features such as graceful exits.
</item>
<item>
The tag library table of contents has been re-arranged alphabetically.
</item>
<item>
Few tag and documentation file names have been changed to offer
a predictable code-base for tooling.
</item>
</section>
</revision>
<revision release="Post 1.0 Development" date="07/29/2005">
<description>
This version adds an alpha implementation of a SCXML (State Chart XML)
engine. An alpha version of a SCXML dialog management strategy for the group
container is also provided.
</description>
<section name="Additions:">
<item>
<b>SCXML Engine</b> - The W3C Voice Browser Working Group
recently announced the publication of the first Working
Draft of State Chart XML. SCXML provides a generic
state-machine based execution environment based on CCXML
and Harel State Tables. The SCXML WD is
<a href="http://www.w3.org/TR/scxml/">here</a>.
The RDC tag library has included an alpha of a SCXML engine
implementation.<br/>
<dir>
The SCXML engine implementation is under development.
The major items that are yet unimplemented are:
<ul>
<li>Multiple (simultaneous) targets for a single
transition (Section 3.3.1)</li>
<li>Outgoing transitions from a parallel (Section 3.4)</li>
<li>JOIN (Section 4.3)</li>
<li>SYNCH (Section 4.4)</li>
</ul>
</dir>
</item>
<item>
<b>SCXML Dialog Management Strategy</b> - An alpha version of
a dialog management strategy for the group container that works
off of a SCXML configuration document is also provided.
<dir>
A demonstrative example in rdc-examples.war is:<br/>
<ul>
<li>scxml-dialog-test.jsp</li>
</ul>
</dir>
</item>
</section>
</revision>
<revision release="1.0" date="07/20/2005">
<description>
The RDC tag library has graduated out of sandbox with a 1.0 release.
</description>
</revision>
<revision release="Beta 1.3" date="06/12/2005">
<description>
This version adds some new components and subdialog support.
</description>
<section name="Additions:">
<item>
<b>New components</b> - New RDCs have been added to support
payment capture capabilities. These include RDCs to collect
credit card numbers, expiry dates, and bill amounts, plus
a composite to collect multiple pieces of credit card
related information.<br/>
<dir>
Example in rdc-examples.war is:<br/>
<ul>
<li>creditcardAmount-test.jsp</li>
<li>creditcardNumber-test.jsp</li>
<li>creditcardExpiry-test.jsp</li>
<li>creditcardInfo-test.jsp</li>
</ul>
</dir>
</item>
<item>
<b>Calling an RDC as a subdialog</b> - JSPs hosting a RDC
component can now be called as VoiceXML subdialogs. Currently
support available for composites in distribution.<br/>
<dir>
Example in rdc-examples.war is:<br/>
<ul>
<li>subdialog-test/parent.jsp</li>
<li>subdialog-test/subdialog.jsp</li>
</ul>
</dir>
</item>
</section>
<section name="New RDC Tags:">
<item>
<a href="index.html#creditcardAmount">&lt;rdc:creditcardAmount&gt;</a> - Retrieves a currency value
augmented by grammars for minimum amount due, full balance etc.
</item>
<item>
<a href="index.html#creditcardExpiry">&lt;rdc:creditcardExpiry&gt;</a> - RDC with grammars geared
towards collecting credit card expiry dates i.e. (month, year) tuples.
</item>
<item>
<a href="index.html#creditcardNumber">&lt;rdc:creditcardNumber&gt;</a> - RDC with grammars geared
towards collecting credit card numbers.
</item>
<item>
<a href="index.html#creditcardInfo">&lt;rdc:creditcardInfo&gt;</a> - A composite RDC, allowing collection
of (credit card type, number, expiry, security code) tuples; and
flexibly any combination thereof using a mode switch.
</item>
</section>
</revision>
<revision release="Beta 1.2" date="05/25/2005">
<description>
This version primarily added i18n support.
</description>
<section name="Additions:">
<item>
<b>Internationalization</b> - RDCs have been i18n'zed. Grammars
and default configuration files are read out of property files.
Locales can be set per RDC-based web application, and overridden
by individual RDCs as needed.<br/>
<dir>
Example in rdc-examples.war is:<br/>
<ul>
<li>i18n-test.jsp</li>
</ul>
</dir>
</item>
</section>
<section name="Modified RDC Tags:">
<item>
<b>All "component" tags</b> - New attribute <i>locale</i> added
to all component tags.
</item>
</section>
</revision>
<revision release="Beta 1.1" date="05/04/2005">
<description>
This is a new features version.
</description>
<section name="Additions:">
<item>
<b>RDC Filter</b> - Lightweight mechanism for (a)
Improving aesthetics of VoiceXML output and (b) Performing
platform adaptations to account for markup variations.<br/>
</item>
<item>
<b>Graceful exit strategies</b> - It is possible
to define a maximum number of &lt;noinput&gt; and
&lt;nomatch&gt; events after which the RDC will
gracefully exit with the appropriate exit status.<br/>
</item>
</section>
<section name="Issues addressed:">
<item>
<b>Initial Grammar</b> - The initial grammar is now
an external resource.<br/>
</item>
</section>
</revision>
<revision release="Beta 1.0" date="03/08/2005">
<description>
This is a new features and sample apps version.
</description>
<section name="Major Additions:">
<item>
<b>Defining Custom Event tuples</b> - It is possible
to leverage the VoiceXML support for user defined event
(name, grammar, handler) tuples. These tuples are
added to the RDC config file.<br/>
</item>
<item>
<b>Dialog Context Switching</b> - A recipe for switching
dialog contexts using the RDC framework i.e. having the ability
to leave a task undone, initiate and complete another task and
then come back to the earlier one, has been demonstrated.<br/>
<dir>
Example in rdc-examples.war is login.jsp of the mortgage application.
The following steps were taken:<br/>
<ul>
<li>A custom "pause" event was defined on the digits components
(via their config files, as mentioned above)</li>
<li>A pause.jsp handler was authored (simple JSP hosting
&lt;rdc:pause&gt;)</li>
<li>The "clearlist" attribute of &lt;rdc:struts-submit&gt; was
used with appropriate values</li>
</ul>
</dir>
</item>
<item>
<b>Multi-channel amazon application</b> - This sample application
uses the Amazon Web Services to provide users with a <b>Small Device GUI
-or- Voice User Interface</b> for browsing through and buying
music albums. See revision history for Pre Beta 1.1 and Pre Beta 1.2<br/>
</item>
<item>
More <b>documentation</b> in rdc-doc.war
</item>
</section>
<section name="New RDC Tags:">
<item>
<a href="index.html#pause">&lt;rdc:pause&gt;</a> - Pauses until the user resumes the
application.
</item>
</section>
<section name="Modified RDC Tags:">
<item>
<a href="index.html#struts-submit">&lt;rdc:struts-submit&gt;</a> - Added the ability to
selectively clear some or all of the RDC session state.
</item>
</section>
</revision>
<revision release="Pre Beta 1.2" date="02/25/2005">
<description>
Added GUI channel to Music Store sample application.
</description>
<section name="Additions:">
<item>
Added <b>GUI channel</b> to Music Store sample application.
With the existing RDC based voice channel for the Music
Store sample application from Pre Beta 1.1, this illustrates
how <b>multi-channel</b> applications can be authored,
leveraging the RDC tag library for the speech channel.
One of the significant benefits of authoring speech
applications using RDCs is the potential reuse of the
higher layers of the application framework across channels.
Application uses the Amazon Web Services to provide
users with a <b>Graphical -or- Voice User Interface</b> for
browsing through and buying music albums. Get your own AWS
subscription ID and try it out!
View README in rdc-examples.war
</item>
</section>
</revision>
<revision release="Pre Beta 1.1" date="02/12/2005">
<description>
Added a RDC based Music Store sample application and meta-data files
for the components.
</description>
<section name="Additions:">
<item>
Added RDC based <b>Music Store sample application</b>.
Application uses the Amazon Web Services to provide
users with a Voice User Interface for browsing
through and buying music albums. Get your own AWS
subscription ID and try it out! View README in rdc-examples.war
</item>
<item>
Added <b>meta-data files</b> for all components in distribution.
These files have an rdc extension and are for tooling consumption.
</item>
</section>
</revision>
<revision release="Pre Beta 1.0" date="01/24/2005">
<description>
This is a new features version. There have been a multitude
of code enhancements.
</description>
<section name="Major Changes Since Initial Version:">
<item>
<b>Rule based directed dialog</b> strategy for rule
based dialog management using the &lt;rdc:group&gt;
container. Illustrates the benefits of having the ability
to plug in dialog management strategies at the group
level.<br/>
<dir>
Examples in rdc-examples.war are:<br/>
<ul>
<li>rulebased-conditions.jsp</li>
<li>rulebased-nested.jsp</li>
</ul>
</dir>
</item>
<item>
<b>RDC template</b> - A mechanism for rapid prototyping of
components in the RDC framework.<br/>
<dir>
Example in rdc-examples.war is:<br/>
<ul>
<li>simple-template-test.jsp</li>
</ul>
</dir>
</item>
<item>
Better <b>formalism</b> for authoring components
</item>
<item>
More <b>documentation</b> in rdc-doc.war
</item>
</section>
<section name="New RDC Tags:">
<item>
<a href="index.html#struts-errors">&lt;rdc:struts-errors&gt;</a> - Plays out any errors messages
from the preceding struts action
</item>
<item>
<a href="index.html#template">&lt;rdc:template&gt;</a> - As mentioned above
</item>
<item>
<a href="index.html#number">&lt;rdc:number&gt;</a> - RDC used to collect a number
</item>
</section>
</revision>
<revision release="Development" date="09/10/2004">
<description>
Initial version of the RDC tag library. The RDC tag
library is in development, changes are fast and furious.
</description>
</revision>
</document>