性格决定命运 气度左右格局 拼搏方能取胜 谦虚才会进步

IVR-2 [Voice XML规范详细描述7]

上一篇 / 下一篇  2008-03-25 10:08:52 / 个人分类:做着

第三节 Scope of Grammars 
 
    input item的语法的作用域为包含该input item的元素。即只有该input item在FIA的选定阶段被选定时,它包含的语法才会被激活。包含在input item中的<grammar>不能指定scope属性,否则抛出error.badfetch事件。
    <link>元素中的语法的作用域为包含该<link>元素的元素。因此,如果该<link>元素是在应用根文档中,则该语法在该应用所有加载的文档中都是激活的。包含在<link>元素中的<grammar>不能指定scope属性,否则抛出error.badfetch事件。
    <form>元素的语法的作用域为dialog。因此只有用户在该form中时,语法才是激活的。如果此时<grammar>元素的scope属性值为document,则当用户在该文档中时,该语法也是激活的。如果<grammar>元素的scope属性值为document,且该文档为应用根文档,则无论用户在该应用加载的哪一个文档中,这些语法都是激活的。有两种方式可以使form中的语法的作用域为document:一种是指定<form>元素的scope属性为document,另一种是指定<grammar>元素的scope属性为document。如果两个元素都指定了scope属性,则以<grammar>元素中指定的为准。
    <menu>元素中的语法默认作用域为dialog,只有用户在该<menu>元素中,它的语法才被激活。但是也可以指定这些语法的作用域为document,使它们在整个文档中都是激活的。如果该文档是应用根文档,则语法在该应用所有加载的文档中都是激活的。在<choice>元素中的<grammar>元素不能指定它的scope属性,否则抛出一个error.badfetch事件。
    有时候,form可能需要一些语法在整个文档中都激活,而另一些语法只有在该form中激活,这样做的目的是最大限度的减少语法叠交的问题。如果<grammar>元素的scope属性值和form的scope属性值不同,应该单独指定自己的scope属性值。
<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/vxml
http://www.w3.org/TR/voicexml20/vxml.xsd">
<form. scope="document">
<grammar type="application/srgs">
#ABNF 1.0;
language en-gb;
mode voice;
root $command;
public $command = one | two | three;
</grammar>
<grammar type="application/srgs" scope="dialog">
#ABNF 1.0;
language en-gb;
mode voice;
root $command2;
public $command2 = four | five | six;
</grammar>
</form>
</vxml>
 

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar