我想创建一个vxml应用程序,在该应用程序中,机器会要求用户提供员工代码 然后针对数据库进行检查。这可以做三次。 1)询问用户员工代码 2)找到相应的代码名称 3)如果代码无效,请让用户再试一次(这可以只做三次
<?xml version="1.0" encoding = "UTF-8"?>
<vxml version="2.1" xml:lang="en-IN" xmlns="http://www.w3.org/2001/vxml" application="lang_select.vxml">
<var name="stop" expr="stop+1"/>
<var name="count" expr="1"/>
<form id="ecode">
<field name="employee" type="digits?minlength=04;maxlength=04">
<prompt count="1" cond="lang=='2'">
Please say your four digit employee code.
</prompt>
<prompt xml:lang="hi-IN" count="1" cond="lang=='1'">
अपने चार अंकों कर्मचारी कोड कहिए
</prompt>
<prompt count="2" cond="lang=='2'">
please try saying your four digit employee code again.
</prompt>
<prompt count="2" xml:lang="hi-IN" cond="lang=='1'">
फिर से अपने चार अंकों कर्मचारी कोड कह के प्रयास करें.
</prompt>
<prompt count="3" cond="lang=='2'">
Your employee code is written on your I-card. please say or enter your four digit employee code.
</prompt>
<prompt count="3" xml:lang="hi-IN" cond="lang=='1'">
आपका एंप्लायी कोड आपके ई-कार्ड पे लिखा है. अपने चार अंकों कर्मचारी कोड बोलिए या दर्ज करें.
</prompt>
<filled>
<var name="inc_count" expr="count+1"/>
</filled>
</field>
</form>
<form id="retry">
<field name="confirm" type="boolean">
<prompt cond="lang=='2'&& count < 3"> <!-- the machine will ask the user only thrice for confirmation -->
you have entered <value expr="employee"> as your employee code. Is it correct?
</prompt>
<prompt cond="lang=='1' && count < 3" xml:lang="hi-IN">
आप ने प्रवेश किया है <value expr="employee">. क्या यह सही है?
</prompt>
<grammar xml:lang="hi-IN" version="1.0"></grammar>
<filled>
<if cond="confirm=='2'"> <!-- if the user has given an incorrect employee code -->
<clear namelist="employee confirm"/>
<goto next="#ecode">
<elseif cond="confirm=='1'"/> <!-- if the user has given correct employee code -->
<submit next="database.jsp" namelist="employee" method="get" /><!--<connect to database -->
<elseif />
<prompt cond="lang=='2'"> the employee code you entered is invalid, please try again later.</prompt>
<prompt cond="lang=='1'" xml:lang="hi-IN"> आपके द्वारा दर्ज कर्मचारी कोड अमान्य है, बाद में पुन: प्रयास करें. </prompt><!--if the value of confirm is undefined -->
</if>
</filled>
<block>
<if cond="stop=='4'">
<prompt cond="lang=='2'"> the employee code you entered is invalid, please try again later.</prompt>
<prompt cond="lang=='1'" xml:lang="hi-IN"> आपके द्वारा दर्ज कर्मचारी कोड अमान्य है, बाद में पुन: प्रयास करें. </prompt>
</if>
<prompt cond="lang=='2'"> Thank you for calling! </prompt>
<prompt cond="lang=='1'" xml:lang="hi-IN"> फोन करने के लिए धन्यवाद! </prompt>
</block>
</field>
</form>
</vxml>
答案 0 :(得分:0)
您将自己计算重复次数,就像您在示例中所做的那样。您将处理catch块中的所有可能错误:无输入,无匹配和数据错误(用于处理无效条目的应用程序自定义事件)。一些事情:
<form>
<catch event="nomatch noinput app.dataerror">
<assign name="app_count" expr="app_count + 1"/> <!-- define it beforehand -->
<if cond="app_count < max_count/>">
Please try again.
<else/>
Maximum number of attempts exceeded.
<!-- Do something here -->
<submit namelist="..." next="..."/>
</if>
<reprompt/>
</catch>
<field name="cardNumber" type="digits?length=16">
Please enter a card number.</field>
<subdialog name="res" namelist="cardNumber" src="..." method="post">
<filled>
<if cond="res.status == 'success'">
<log> Card number input success </log>
<submit next="..." method="post"/>
<else/>
<log> Card number input data error <value expr="res.status"/></log>
<clear namelist="cardNumber res"/>
<throw event="app.dataerror"/>
</if>
</filled>
</subdialog>
</form>
您也可以添加带有count属性的提示。