里,大多数 Java 开发人员都试图在自己的 Java Servlet 中手工编码 VXML,添加数 百行的 out.println() 语句、为输出的内容类型而操心,通常也会给许多应用程序增加严重 且不必要的复杂性。动手处理那些较为复杂的编程任务之前(只要应用得当,它们都是很有 用的),请先通过本节了解一些关于 VoiceXML Servlet 编程的最基本的内容。
在Java Web 开发框架中创建VoiceXML页面(4)
时间:2011-04-16 IBM Brett McLaughlin
创建一个 VXML 文件的原型
首先要开发 VXML 文件。不要打开一个 IDE 并开始编写 Java 代码,而是启动一个文本 编辑器,忍住立即添加 package 和 import 语句的渴望。构建一个简单的 VXML 文件,就像 本文前面给出的示例那样。
例如,清单 2 是又一个非常基础的 VXML 文件。它是一个语音识别 VXML 文件,接入一 个恰当的设备并提供某些关于呼叫选择的注释。
清单 2. 另外一个基本的 VXML 文件
<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.1">
<form id="MainMenu">
<field name="instrument">
<prompt>What is your favorite musical instrument?</prompt>
<!-- Insert an inline grammar -->
<grammar type="text/gsl">
[guitar mandolin dobro (violin fiddle) banjo]
</grammar>
<!-- Handle the case when they give no answer -->
<noinput>
Did you say something? I didn''t hear you.
<reprompt />
</noinput>
<!-- Handle the case when no match is found -->
<nomatch>
I suppose that''s OK, but it''s not on my top five.
Want to try again?
<reprompt />
</nomatch>
</field>
<!-- Handle the various options. -->
<filled namelist="instrument">
<if cond="instrument == ''guitar''">
<prompt>That''s right! Hang up and go practice.</prompt>
<elseif cond="instrument == ''mandolin''" />
<prompt>Nice... and only four strings to keep in tune.</prompt>
<elseif cond="instrument == ''dobro''" />
<prompt>Boy, that''s no fun to learn, is it?</prompt>
<elseif cond="instrument == ''violin''" />
<prompt>We call that a fiddle, Mr. Fancy Pants.</prompt>
<elseif cond="instrument == ''fiddle''" />
<prompt>Does playing classical music on a
fiddle make it a violin?</prompt>
<elseif cond="instrument == ''banjo''" />
<prompt>Wow, I hope you live alone.</prompt>
</if>
</filled>
</form>
</vxml>
编写这个 VXML、保存它、将它上传到 ISP,然后为它分配一个号码。只有在您完成所有 这些步骤后 —— 确保您的 VXML 正常工作,才是准备好了,可以开始 考虑编写 Java 代码 。
如果您直接跳到 Java,那么很可能会导致输出中出错,代码中也会出错。结果是要在一 个 Web 框架内尝试同步调试一个 VXML 文件(XML)和一个 Ser |