The <param> element is used to specify values that are passed to subdialogs.
| name | The name to be associated with this parameter when subdialog is invoked. |
| expr | An expression that computes the value associated with name. |
| value | Associates a literal string value with name. |
| valuetype | (defaults to "data") Either data or ref; used to indicate to an object if the value associated with name is data or a URI (ref). This is not used for <subdialog> since values are always data. |
The <param> elements of a <subdialog> specify the parameters to pass to the subdialog. These parameters must be declared in the subdialog using <var> elements; it is a semantic error to attempt to set a form item variable or an undeclared variable using <param>. When a subdialog initializes, its variables are initialized in document order to the value specified by the <param> element with the corresponding name. The parameter values are computed by evaluating the <param> expr attribute in the context of the <param> element. An expr attribute in the <var> element is ignored in this case. If no corresponding <param> is specified to <var> element, an expr attribute is used as a default value, or the variable is undefined if the expr attribute is unspecified as with the regular <form> element.
<?xml version="1.0"?>
<vxml version="2.0">
<!-- form dialog that calls a subdialog -->
<var name="myname" expr="'Jane Doe'"/>
<form>
<subdialog name="result" src="#getdriverslicense" namelist="myname">
<!-- This will send the variable "birthday" to the -->
<!-- subdialog "#getdriverslicense". -->
<param name="birthday" expr="'February 10th, 1970'"/>
<filled>
You entered <value expr="result.drivelicense"/>.
<submit next="http://nonexistent.domain.com/process.pl"
method="post"
namelist="result.drivelicense birthday"/>
</filled>
</subdialog>
</form>
<!-- subdialog to get drivers license -->
<form id="getdriverslicense">
<!-- In order to receive parameters sent from a "subdialog" tag, -->
<!-- the parameters must be declared within the subdialog with the -->
<!-- exact same name. -->
<var name="birthday"/>
<field name="drivelicense" type="digits">
<prompt>
<value expr="myname"/>,
your birthdate is: <value expr="birthday"/>.
Please say your driver's license number.
</prompt>
<filled>
<return namelist="drivelicense"/>
</filled>
</field>
</form>
</vxml>The output of the above script would be:
Computer: Jane Doe, your birthdate is: February 10th, 1970.
Computer: Please say your driver's license number.
Human: One two three four five six seven eight nine.
Computer: You entered one hundred twenty-three million, four hundred fifty-six thousand, seven hundred eighty-nine.
(continues on to processing form…)
None