<param>

<param>

The <param> element is used to specify values that are passed to subdialogs.

Attributes

NameData typeDescription

name

String

The name to be associated with this parameter when subdialog is invoked.

expr

String

An expression that computes the value associated with name.

value

String

Associates a literal string value with name.

valuetype

String

(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.

Notes

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.

Example

<?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…)

Child Tags

None

Parent Tags

<subdialog>

Last updated