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

IVR-1[ Voice XML基础教程中]

上一篇 / 下一篇  2008-03-24 19:47:59 / 个人分类:做着

3.1.18 <help>ITPUB个人空间'h?![z8C:W&Fv
 
'ilm.hE-\N'Q\0      捕获一个<help>事件,它实际上是<catch event="help">的缩写,<error>、<noinput>、<nomatch>也是类似的情况。在下面的例子中,当输入不等于字符串“1234567”时“help”事件被捕捉,并输出提示“对不起,您输入了错误密码。”。
^H FF$s;@.`0 
dP(TD4S@0       1   <?xml version="1.0"?>ITPUB个人空间#UY7H-^BB-f
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间at4y6\ w}-j_9T
       3     <form>ITPUB个人空间8^.lH`U
       4        <help>ITPUB个人空间,_zA }k"k7|
       5          <prompt>对不起,您输入了错误密码。</prompt>ITPUB个人空间XJ{0SD!e%c
       6        </help>
lM,o h5Y+`8Th0       7        <field name="password " type="digits">ITPUB个人空间A;y5T Y tp
       8           <prompt>请输入密码</prompt>ITPUB个人空间;Zhw FN/k
       9           <filled>
2}!o:X8h A(OP0       10           <if cond="password != '1234567'">ITPUB个人空间%]"D]&h2JX'q [
       11             <throw event="help"/>ITPUB个人空间Sd@6e1VaT
       12           </if>ITPUB个人空间KK \ ^N#`.?'J[
       13          </filled>
U\%Z,rx4p VAU0       12        </field>ITPUB个人空间,M3cG!Q,y'Z/k
       13     </form>
H.ef}Ocl W7T0       14  </vxml>
b*k]Ic:yz3A0 ITPUB个人空间fn v4h5Z&@-D?
 ITPUB个人空间i2r1a)A(Fil"Gs w
      3.1.19 <if>ITPUB个人空间'~Q&e6k eG7b4D
 
p;kAn h{0      条件逻辑。在下面的例子中,当输入不等于“5”时,输出提示“算错了,重来一遍。”,并清空变量“result”,使控制重新回到输入域“result”。
0Lt7Z6GH N l(Xf |0 ITPUB个人空间`e3](^ xp`{
       1   <?xml version="1.0"?>
A}XI2}4`c}"I0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
T@(D s ?)f`"P;\*X0       3     <form>ITPUB个人空间 o4Uze+A#r1O
       4        <field name="result" type="number">ITPUB个人空间y.z![{(S mB
       5           <prompt>3加2等于多少?</prompt>ITPUB个人空间.Q |)I)O2@}"O3S8p
       6          <filled>
lr2al0D&E@ `0       7           <if cond="result != 5">ITPUB个人空间+wE3p7wJ3}pS(z0Q
       8             算错了,重来一遍。ITPUB个人空间#Z8vX&@S!Y
       9           <clear namelist="result"/>
7m-h$z rv0       10          <else/>ITPUB个人空间H|%h5HeEC,t%x"N3k
       11            算对了,祝贺你!
/_9X6ok;yo5]w0       12          </if>
I5Uj0|_4p3@8MD0       13        </filled>
s/T$i8Tpz0       14       </field>
bS~0_9FD'j$uQ0       15     </form>ITPUB个人空间 y y&q4fD:r U*D
       16   </vxml>
.nORy~j5}r*o?0 
#R)I+k-n@8S0 
TqL3tZ"T `;~_0      3.1.20 <initial>
BBp$J8o0 ITPUB个人空间\TG3WmPe^0i%Q
      在进入一个双向交互式对话框架时申明初始对话逻辑,如果输入匹配指定的语法,则跳过相应的输入域。在下面的例子中,当输入匹配语法“cityandprovince.grxml”时(例如输入“广东深圳”),则跳过输入域“province”和“city”,输出提示“您要查广东省深圳市的天气预报”,否则依次进入输入域“province”和“city”,等待用户输入。
mt#AiK6d0 
J'c\ C E@i!}0       1   <?xml version="1.0"?>
2B8C"H/Dc0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
c?y}\0       3     <form. id="weather_info">ITPUB个人空间$W$Yu$mi(d!uHfF
       4       <grammar src="cityandprovince.grxml" type="application/srgs+xml"/>ITPUB个人空间!B,Q\pSL sy
       5         <initial name="start">ITPUB个人空间*jw*N;o!Z-Xp
       6           <prompt>您要查询哪里的天气预报</prompt>
A@+U)X[$E7NA0       7         </initial>ITPUB个人空间)K%N-GvB5|uJg
       8         <field name="province">ITPUB个人空间7Xj sZ f]'r `2J f
       9           <prompt>您要查询哪个省份的天气预报</prompt>ITPUB个人空间R.I)yciM;F^
       10        </field>ITPUB个人空间*yj3q3c.[ jh6L
       11        <field name="city">ITPUB个人空间eRu7Z ]4~t t1s
       12          <prompt>ITPUB个人空间 ]1t9G8ajs X2aj$Y
       13            您要查<value expr="province"/>省的哪个城市的天气预报
,j Y0M-p-R-nsu]x0       14          </prompt>ITPUB个人空间.E ~DmS?-}
       15        </field>ITPUB个人空间4Ev'q(ReD-y
       16       <block>ITPUB个人空间C _Vnu5s.d)b
       17        <prompt>ITPUB个人空间e]L#a:J|x+@w
       18          您要查<value expr="province"/>省<value expr="city"/>市的天气预报
;pG4zgPsT| y1i0       19        </prompt>
F#?Bwwkc/^)x0       20       </block>
g+o(@CbW0       21     </form>ITPUB个人空间TD k#r4SD^:s
       22   </vxml>
}/D%dS&X6E%z0 
uQj\;v_C V:P0 
C/{(j P0}A V;y~0      3.1.21 <link>ITPUB个人空间 jh[ ^+F`{
 
l:QV;zf$o W0      在所有对话链接区域指定共有的控制转向,<link>有至少一个语法,当输入匹配<link>中的语法时,控制转向<link>的属性next所指向的位置。在下面的例子中,当用户的输入匹配语法“services.grxml”时,控制转向文档"“block.vxml”。ITPUB个人空间.['].F"C)F(X h2WYE
 ITPUB个人空间Vid_n
       1   <?xml version="1.0"?>
S ^wY"?xnf3j@4o0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间|2u!L$A v6XC[U+f3|
       3      <link next="block.vxml">ITPUB个人空间e^i8]7G3jW8U+s\0Sp
       4        <grammar src="services.grxml" type="application/srgs+xml"/>
J xUqi'p0@0       5      </link>ITPUB个人空间+c-a#y0T;P
       6      <form>
bk#h9R\~0       7       <field name="service" type="digits">
e }[|m3F$V+q0       8          <prompt>请输入密码</prompt>
v6H P-T.C9P+h&O~0       9         <filled>ITPUB个人空间A W;b:K'da
       10          您输入的是<value expr="service"/>。
6d3~3r0r&?0       11        </filled>ITPUB个人空间-F]J0wMx cF4`p
       12       <//field>
U#V0Fo gWSXAp0       13     </form>
$_1h7B*e'XAeDi3A1e0       14   </vxml>
pn7A Og0 ITPUB个人空间iX+@S+?~9ahRT
 
a,]Q-j.I!C kq!_G0      3.1.22 <log>
o? `pUVV0 ITPUB个人空间h'`c|}q:E+l9G3j5^ S
      生成调试信息,以便开发者调试程序,或分析程序的性能,它对解释器解释程序没有任何的副作用。在下面的例子中,系统生成调试信息“用户进入系统。”。ITPUB个人空间?1SIW.~#jW
 
nB\Y2vry0       1   <?xml version="1.0"?>ITPUB个人空间)JI0f/xr+KR5f
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间"g4T,]UIr$^(] [
       3      <form. scope="document">
b#lO]n0       4         <block>
O ^2s1DxA9v V0       5            <log>用户进入系统。</log>
t/?(n |u8J\'I0       6         </block>ITPUB个人空间K~`iH3A|q
       7      </form>ITPUB个人空间g C.H5bZ:LMH
       8  </vxml>ITPUB个人空间JjDc(Y { W2LH
 ITPUB个人空间 ZE ]B*Q
 ITPUB个人空间$q5gm.xjw4O.l,N
      3.1.23 <menu>ITPUB个人空间HA M7c7Ni
 ITPUB个人空间#E(hGxDinr'IF
      定义菜单对话。在下面的例子中,当输入匹配菜单项之一,例如输入“天气预报”,则控制转向<choice>的属性next所指向的文件“weather.vxml”。ITPUB个人空间o9i:rC2EPw;^
 ITPUB个人空间-NU:| ~;AaN
       1   <?xml version="1.0"?>ITPUB个人空间"V C7_*]1R
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
.A[Qm4T OtQ-[0       3      <menu>
C t;ndE6c6^{w0       4        <prompt>
)Y A_{[6x)P,Z}0       5         欢迎使用华琛公司语音服务系统。今天我能为您做什么?
i ~fu[+TK7uh0       6         了解今天的天气情况请说"天气预报";了解股市情况请说"股票市场"。
]`:V~_(gr2e0       7        </prompt>
&^SQhaW~0       8         <choice next="weather.vxml">天气预报</choice>
S DE!~'OE0o0       9         <choice next="stocks.vxml">股票市场</choice>ITPUB个人空间P;bm^!m/Z
       10     </menu>
1r [T1T N6^O9?7{0       11  </vxml>
@8a'Z*t"a'||B0 
4u;I8Ny!Q:y0 ITPUB个人空间,at!G DFd/r
      3.1.24 <meta>
WY"ni|2v#x0 ITPUB个人空间5X.ZB%K4?4gVS
      定义一个元数据项,类似于在HTML中定义元数据。在下面的例子中,定义了三个元数据。ITPUB个人空间n\-S$E$f,[%\ fc
 ITPUB个人空间9Pb wHdK+lm
       1   <?xml version="1.0"?>
9SC2NEwu0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
2m1v8L*bQ0       3     <meta. name="maintainer" content="abc@mycompany.com"/>ITPUB个人空间"Wt6q(pdAD
       4     <meta. http-equiv="Expires" content="0"/>ITPUB个人空间ovFSc u
       5     <meta. http-equiv="Date" content="Thu,12 Dec 2000 23:27:21 GMT"/>
9FUaz `2?C|[0       6     <form>
vF1KHY'[Y'RT0       7       <block>ITPUB个人空间dv6dklkZ6M k
       8         欢迎使用华琛公司语音系统
b$F!} _w;m i C0       9       </block>ITPUB个人空间so5nJ*[1^"B(]#n
       10    </form>ITPUB个人空间6}%|-P7j\ { xg7u
       11  </vxml>ITPUB个人空间dLK|HJ
 
R%zV$[/^;iE^ zX0 ITPUB个人空间3_t?W4LK }
      3.1.25 <metadata>ITPUB个人空间^0A$j c(l{gLW
 
7u1A emc9@&BW0      定义元数据信息。ITPUB个人空间A"fa,YQ!P\7ix
 
#Z;J)Yl,t;Yf6|0      3.1.26 <noinput>ITPUB个人空间+T8SB*`N7P s-T(K
 
4Y7d$\nIn m0      捕获一个<noinput>事件,它实际上是<catch event="noinput">的缩写,<error>、<help>、<nomatch>也是类似的情况。在下面的例子中,当一段事件没有输入,系统就抛出<noinput>事件,并被捕捉,输出提示“对不起我没有听见。”。ITPUB个人空间KZ&B$Lzz$h
 
&fe.GDU-N;j2US0       1   <?xml version="1.0"?>ITPUB个人空间@1n.RY1P-~
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
RGR+W1I0       3     <form>ITPUB个人空间6h.`-ov]a"k
       4        <noinput>ITPUB个人空间d3M*Mx)D
       5          <prompt>对不起我没有听见。</prompt>ITPUB个人空间1p U!B6I`/@Z
       6        </noinput>
7L D:FFrNst0       7        <field name="password " type="number">
ot _#|_,_)g0       8         <prompt>请输入密码</prompt>ITPUB个人空间@Qv6pP%Tv
       9        <filled>ITPUB个人空间 lw\]:_
       10        <if cond="password != '1234567'">
8r-s [ n%{]&}0       11          <prompt>输入密码错误。</prompt>ITPUB个人空间i3Ae7H;M4mVz
       12        <else/>
G7u vf `h v H0       13          <prompt>欢迎使用华琛公司语音系统。</prompt>
\@U9u$R[1PAv0       14        </if>
!I)Q {5E}Om'}0       15       </filled>
1|XF(x-Y X0       16      </field>ITPUB个人空间y_:kGD
       17     </form>
6C'crG7c"l,V4zs0       18   </vxml>
h9}'r%Ps4TYn `%l0 ITPUB个人空间OQ+`p'dQ5P Sx:@u t
 
z]6\kZ,_Z1Fk.Q"H0      3.1.27 <nomatch>
EvJ d y:~1w0 ITPUB个人空间#cU|"gBes4Zrto
      捕获一个<nomatch>事件,它实际上是<catch event="nomatch">的缩写,<error>、<help>、<noinput>也是类似的情况。在下面的例子中,当输入没有匹配“number”语法时,系统就抛出<nomatch>事件,并被捕捉,输出提示“对不起,我没有听懂。”。ITPUB个人空间e4lf6p4lC
 ITPUB个人空间.Bplbz]!}
       1   <?xml version="1.0"?>ITPUB个人空间EI0zFJ9i9FN
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间/t0y.e0rP(C:l IL;R
       3     <form>ITPUB个人空间`\II F*Z1E
       4        <nomatch>ITPUB个人空间U.q?;X(_ I{
       5          <prompt>对不起,我没有听懂。</prompt>
x4ApPi0       6        </nomatch>
`"Z&}*j&z;m:vfV0       7        <field name="password " type="number">
(S ^J!yE,Rt0       8         <prompt>请输入密码</prompt>
#f&vy"B6^'G h)X A| P0       9        <filled>
!`1Hd@Z3i0       10        <if cond="password != '1234567'">
@ \0~CWg7rf0       11          <prompt>输入密码错误。</prompt>ITPUB个人空间9c;S/^~#Fi9l2G
       12        <else/>ITPUB个人空间5X(Vtr V.p
       13          <prompt>欢迎使用华琛公司语音系统。</prompt>
fz/A1P0L.e"|&W PB0       14        </if>
7[)jVv9O"zd0       15       </filled>
Y6l ]t l.z:DV0       16      </field>
d$ZpUGS @w0       17     </form>ITPUB个人空间X9v'b.t wS+Y#zy
       18   </vxml>ITPUB个人空间J \'R?n4DDr_-p
 
]0f9LWk v0 
Pq`sbZd0      3.1.28 <object>
4_ ] NTjJb0 ITPUB个人空间W8k+^&V_/ZZTTv!R
      与系统扩展功能相结合的接口,通过它使VoiceXML平台可以使用用户定制的扩展功能。下面的例子中,“VoFTp”是用户定制的功能,引用它可以让VoiceXML平台能够从指定的FTP服务器下载指定的文件到指定的路径。
T[r7w"n8LC5x:D0 ITPUB个人空间K1z[Ry/i)]
       1   <?xml version="1.0"?>ITPUB个人空间Bf;X!o`^5cY'UJ
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
,H Z1M*U7o%V0       3     <form>
$m+~)cV[4nJ n0       4       <block>将文件从指定服务器下载到指定文件</block>ITPUB个人空间*P duzRL4kl$Q6u&]
       5       <object name="download" classid="VoFTP">
8D X u h3P i4`0       6         <param name="ip" expr="'192.168.0.1'"/>ITPUB个人空间9m(I(L6JRn"Y"Q2a
       7         <param name="userid" expr="'anonymous'"/>
f.]4M b[3t#J0       8         <param name="password" expr="'x@x.com'"/>ITPUB个人空间&o'["}-M,vu)J
       9         <param name="method" expr="'get'"/>
d9Fm'_3H@&c wf1B0       10        <param name="remotefile" expr="'/todownload.doc'"/>
wR MLR#} I4F;X&g0       11        <param name="localfile" expr="'downloaded.doc'"/>
zP M6d]k4]Bu0       12        <param name="fetchaudio" expr="'fetchaudio.wav'"/>ITPUB个人空间pc[&Dp7I
       13        <param name="type" expr="'ascii'"/>ITPUB个人空间#DD@3R{ DU
       14      </object>
Hlwx J-G ]_0       15      <block>ITPUB个人空间#Y-p#hn-K7Q1Q f*Y
       16        <if cond="download.status == 'success'">
zj [@m},_!iV]0       17          <prompt>文件下载成功</prompt>
]RN;h#R{0       18        <else/>ITPUB个人空间 @O A WrkSR
       19          <prompt>文件下载失败</prompt>
R+g0Eo)R3P$^Z0       20        </if>ITPUB个人空间2IH;]8K)Ul#xN
       21      </block>
|(?6{r(L t|;eEf0       22     </form>
sh"i/]{K oEL C(L0       23   </vxml>
|SW3L-hs^0 ITPUB个人空间h U,~~ oXP3Kd4KQ
 ITPUB个人空间te-Zc$m
      3.1.29 <option>
z zmk2G8~/]S0 
&v(Z m3~Y&C"yKp:_0      在一个输入域中声明一个供选择的选项。若一个输入域的输入选项比较简单,用这个元素比较方便。在下面的例子中,两个<option>在输入域“service”中声明了两个选项,当输入匹配这两个选项时(例如输入按键“1”),系统输出提示“你刚才说天气预报。”。ITPUB个人空间N!`.Z6L;V,j1~ F5wpI3U[
 
qX!S%XJAALo0       1   <?xml version="1.0"?>
~#n$h PL4O*h(v0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
Q!a0R*P&Ar} s0       3     <form>ITPUB个人空间g\5qf4kw+k
       4       <property name="inputmode" value="dtmf"/>
c j5o#S*L z0       5        <field name="service">
;^rw x*O^ x,K0       6         <prompt>
G8Kxb$RT j0       7           欢迎使用华琛公司语音服务系统。今天我能为您做什么?ITPUB个人空间,G(J\f5J.T
       8           了解今天的天气情况请说"天气预报";了解股市情况请说"股票市场"。>ITPUB个人空间$[KD+~(m,}
       9         </prompt>
_[hRj's0       10        <option dtmf="1" value="天气">天气预报</option>
/T2d_F0[7o-Lt0       11        <option dtmf="2" value="股票">股票市场</option>
(N Ofp6OW$N&du0       12        <filled>
Lo/Uo8Q O0       13          <prompt>你刚才说<value expr="service"/>。</prompt>ITPUB个人空间y0K7N B Q$pP
       14        </filled>
Ts1_Z8V+H5G0       15      </field>ITPUB个人空间 Ldp n:K2G1[
       16     </form>ITPUB个人空间C ?M1R!g |L g+z
       17   </vxml>ITPUB个人空间BU4E;a[s!meg
 
@ j4s aS/B1f D.Q0 
'X DDte0      3.1.30 <param>ITPUB个人空间k!}I%\0` pr
 ITPUB个人空间'~0{"Z6t)SY8Ae
      <object>或<subdialog>的参数,它声明了要传递给<object>或<subdialog>的参数的值。在下面的例子中,七个<param>分别声明了要传递给“VoFTP”的七个参数的相应的值。ITPUB个人空间B{&R a#@
 
,s]3M#Doy0       1   <?xml version="1.0"?>
&qu*u S#_S(d,W0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
;| ^LBuQ0       3     <form>
R%C]]3e&j0       4       <block>将文件从指定服务器下载到指定文件</block>
5^tq~lhKAp0       5       <object name="download" classid="VoFTP">
;c w cK3Id5B0       6         <param name="ip" expr="'192.168.0.1'"/>ITPUB个人空间rt,eN~R(Z9g O:s
       7         <param name="userid" expr="'anonymous'"/>ITPUB个人空间(W&RG(\XF
       8         <param name="password" expr="'x@x.com'"/>
yg;mg2]$bZc0       9         <param name="method" expr="'get'"/>ITPUB个人空间:Z r7B @9IVLG
       10        <param name="remotefile" expr="'/todownload.doc'"/>
K iaC"M4Qw%k;c7o5Ck0       11        <param name="localfile" expr="'downloaded.doc'"/>
5f5dF6^|i \-B'\0       12        <param name="fetchaudio" expr="'fetchaudio.wav'"/>ITPUB个人空间 c?Yj,m h2u
       13        <param name="type" expr="'ascii'"/>
'u2s0Ii3iMLb0       14      </object>
5C5oTz7m0       15      <block>ITPUB个人空间$I1L(l'a5B|]
       16        <if cond="download.status == 'success'">ITPUB个人空间H5G b#QSSD
       17          <prompt>文件下载成功</prompt>
%wG5V;P%j&Y0       18        <else/>
7llp8s[0       19          <prompt>文件下载失败</prompt>ITPUB个人空间&HaB%jS`.x$Y%r2[']:{
       20        </if>
]N4mZ"m0       21      </block>
? wv.gp;Qs)H4T5z0       22     </form>
q8b;l8v W)lD!c%HL0       23   </vxml>
(K&n7s aOY/q0 ITPUB个人空间$iS4@w-^9l{$A/u
 ITPUB个人空间!St4n,S:Y1Ov
      3.1.31 <prompt>ITPUB个人空间{7}%Q}1w
 ITPUB个人空间(S5dHn;{(q
      指定语音合成提示和声音文件输出。在下面的例子中,输出语音合成提示“欢迎使用华琛公司语音系统。”。
WDrtZ0 
0Wqa&Ndr.{3yO0       1   <?xml version="1.0"?>
r]9x"K;D0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
4~2QKw5qR0       3      <form>ITPUB个人空间D pO6H`4Z,{
       4         <block>ITPUB个人空间@ z)x4Y,a(@
       5            <prompt>欢迎使用华琛公司语音系统。</prompt>ITPUB个人空间%l:C%^pm p#mG-xu+q
       6         </block>ITPUB个人空间7~%m]'bZ2B
       7      </form>ITPUB个人空间#h e[/v N`6CE L kN
       8  </vxml>
h,b&PP5d nz4h1H0 ITPUB个人空间c h^Q-n
 
~&Bpo v,eou0      3.1.32 <property>ITPUB个人空间ckEP9Qb
 ITPUB个人空间 ` m{)f ?Q6Px
      指定平台特性值以控制平台设置。关于平台特性的详细情况请参见http://www.w3.org/TR/voicexml20/#dml6.3。在下面的例子中,指定了平台的“bargein”属性的值,使系统的提示不能被打断。
G&P3\ q3l+K _0 ITPUB个人空间 W#\H Z[8_3I0l'w
       1   <?xml version="1.0"?>ITPUB个人空间l6W PaqHA
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间 u c6P` m$k6| p*D
       3      <form>
"u*d&y9ve `#Q6}iu0       4       <property name="bargein" value="false"/>ITPUB个人空间MuAhzM/l]/\6C
       5         <block>ITPUB个人空间"f3FeR"w
       6            <prompt>欢迎使用华琛公司语音系统。</prompt>ITPUB个人空间;dK Od(d w
       7         </block>
jH"d Q8H_;WK]-I$PV0       8      </form>
-Jf5b_b,y1\0       9  </vxml>ITPUB个人空间Hb.S6{K
 ITPUB个人空间q!\ R5g3iW%D+R
 ITPUB个人空间9eu-Iq(z
      3.1.33 <record>
9Y)XI+PJV0 ITPUB个人空间 y@ j*de4d4~;W
      录音,录音保存在<record>的属性name所声明的变量里。在下面的例子中,输出提示“在‘嘟’声后请录音。”,然后开始录音,并把录音保存在变量“msg”ITPUB个人空间/O3^,b#}w
 ITPUB个人空间4i J_yb!g"T)T
       1   <?xml version="1.0"?>ITPUB个人空间I_([.e9Ua1^3\%X
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
;Z(Uz"T"_9\3h1hA0       3      <form>
X(DP$iy m tLl0       4        <record name="msg" beep="true" maxtime="10s" finalsilence="4000ms"
!A.vhNa*U4DJ0                  type="audio/x-wav">ITPUB个人空间-]9J S.^.|:v%ux E
       5          <prompt timeout="5s">ITPUB个人空间!uX"K~h#]G6~
       6            在“嘟”声后请录音ITPUB个人空间@:BD)RMQ
       7          </prompt>ITPUB个人空间lQ(s6h}nWV T
       8        </record>ITPUB个人空间!tO^,`Z"L,_
       9        <block>ITPUB个人空间 p c:C8sS|7Zdf)EA
       10         <value expr="msg"/>ITPUB个人空间Kv/A~I%a)C1P)bV
       11       </block>
+iz&q%t%nIg0       12     </form>ITPUB个人空间Cl8ISYVSI cA
       13  </vxml>ITPUB个人空间~;w[|kB
 ITPUB个人空间5l8O"p WZ#u%N
 
S9r-h.y3PN,I t8c0      3.1.34 <reprompt>ITPUB个人空间Qb[{ gm[8kT
 ITPUB个人空间3C1pcxZ1L
      捕捉一个事件后控制重新转向一个输入域时,指定这个输入域的新提示。在下面的例子中,当系统捕捉到<nomatch>时,输出提示“对不起我没有听懂。”,并指定重新提示,因此,控制重新转向输入域,会再次输出提示“请告诉我你的年龄?”。ITPUB个人空间QsC2B[
 
3D ?%ir$n9a0       1   <?xml version="1.0"?>ITPUB个人空间Z EC!|h+Tq
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
U{G6r gq/RB0       3      <form>ITPUB个人空间f"tx;L#\"f
       4        <field name="age" type="number">ITPUB个人空间%Sx j-@kVW
       5          <prompt>请告诉我你的年龄?</prompt>ITPUB个人空间W_qpC,P^
       6           <nomatch>
y4Zq3\w0       7             对不起我没有听懂。ITPUB个人空间QN1Q2~)[ n0D{s7D
       8           <reprompt/>ITPUB个人空间rHY QJ9V
       9           </nomatch>
:U V+P lwzB L?FQ_0       10          <filled>ITPUB个人空间GWcCf \
       11            <prompt>你刚才说你有<value expr="age"/>岁。</prompt>ITPUB个人空间z?x'xZ:{&oJ I ~
       12          </filled>
D+]g-zl;|y ~S0       13       </field>
oS'wI R N KS0       14     </form>
)DG v,sz1]3w0F0       15  </vxml>ITPUB个人空间&l#E3a9p| yE9oO&vY
 ITPUB个人空间G7onAGe&h
 
N,vX]:B)|"a P7G_0      3.1.35 <return>
})A.VY5O,h2u0 ITPUB个人空间~s(OY6p(zf,~T
      从子对话中返回,它结束了子对话框的运行,并把控制和数据返回给调用它的对话框。在下面的例子中,<return>把控制和数据“password”返回到调用它的对话框“main”,输出“密码是1234567。”。ITPUB个人空间o g(B$J#P'F x$bD
 
dQ.p {E6`!G6c5^0       1   <?xml version="1.0"?>
Cm jW(GzV!j0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
?u8wzGO0       3      <form. id="main">ITPUB个人空间w[[-y&v@g'~o~
       4        <subdialog name="result" src="#info">
9C_'Ye%h,e y1m'M `8~0       5          <param name="parameter" value="密码"/>
^.GZB7pkQ { o0       6        </subdialog>
!z DYW C*X0       7        <block>ITPUB个人空间vcc*a1G6t
       8          <prompt>密码是<value expr="result.password"/>。</prompt>ITPUB个人空间| K[V J
       9        </block>ITPUB个人空间N3Y O \(Pst9rb
       10     </form>ITPUB个人空间'^;ir5__Gn:V*Q
       11     <form. id="info">
-GLoY+RJC:J@0       12       <var name="parameter"/>
"qk9Gc7L,H4IS*_(]0       13       <var name="password"/>
.a _n@u p,q0       14       <block>ITPUB个人空间y7i3S1_ {`
       15         <if cond="parameter=='密码'">ITPUB个人空间7V.n2N:{;tYB!H:o7H,a`
       16          <assign name="password" expr="'1234567'"/>ITPUB个人空间+tK\:lv S+l'P'Sx
       17         </if>
G3V4rS@]0       18         <return namelist="password"/>ITPUB个人空间X![L&Y3UTK#e
       19      </block>
/F C"GF2sU0       20     </form>ITPUB个人空间 RH&sKP
       21  </vxml>
'U[%^J S$UL]0 ITPUB个人空间~p*M-UeH ]
 ITPUB个人空间 `W9d,b_9l
      3.1.36 <script>
*o/koE(@ t0 
qD2Syh-K!e0      定义客户端的ECMAScript(JavaScript)模块。在下面的例子中,定义了一个求阶乘的JavaScript模块,输入一个数后(例如输入“4”),调用这个JavaScript模块,输出提示“4的阶乘是24”。ITPUB个人空间W6[V`-see4D
 ITPUB个人空间 t2~5a.M'Y.v^ O.z
       1   <?xml version="1.0"?>
TzbT;H:U(|0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间8C ~C%GNSx
       3     <script>ITPUB个人空间$t pv$~d+K
       4      <![CDATA[function factorial(n){return(n<=1)? 1:n * factorial(n-1);}]]>ITPUB个人空间| {d2NZp{
       5     </script>ITPUB个人空间6O5V%lIz/^0U
       6     <form>
w-o.g8P Sz2L0       7       <field name="fact" type="number">ITPUB个人空间3OuE KG
       8         <prompt>告诉我一个数,我将计算其阶乘。</prompt>
tc#o&]+q2V7O%eY&wC0       9         <filled>ITPUB个人空间 B:t,U pt
       10          <prompt>ITPUB个人空间-`3|iZV2ehF,M*j D
       11            <value expr="fact"/>的阶乘是<value expr="factorial(fact)"/>
*VJk;a#VX0       12          </prompt>
J4o!k+Q6O b"k9Bn0       13        </filled>
.K3J W5f(t#J? mLQ`i0       14       </field>
)E6@(iF:rGv@0       15    </form>ITPUB个人空间#GT-[+x6DH
       16  </vxml>
YNF1l$E/H%BS0 
8cBA#\pAO0 ITPUB个人空间!Z5TOr s(@1J5^3]
      3.1.37 <subdialog>ITPUB个人空间m"U&t/JKR V `M^
 ITPUB个人空间4E'b4t:GZb"[ o N
      调用另一个对话框作为当前对话框的子对话框,它有利于创建可重用的应用程序。在下面的例子中,对话框“main”调用了“info”作为子对话框,输出“密码是1234567。”。ITPUB个人空间:w&A!r.r'\
 ITPUB个人空间&kVJ's r(y"y
       1   <?xml version="1.0"?>
S"E Bp9G!k3Z0E'|0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间5y'A!T6s9d1[
       3      <form. id="main">
%R Z^ru0       4        <subdialog name="result" src="#info">
(A Mk:|$q*K5|%X6~0       5          <param name="parameter" value="密码"/>ITPUB个人空间7V P$k t0t} H)O%R/p
       6        </subdialog>
|!J w*weT0       7        <block>ITPUB个人空间3R;q&l,jx;A1v N(D
       8          <prompt>密码是<value expr="result.password"/>。</prompt>
R!ge N&k s)s0       9        </block>ITPUB个人空间`/pU+H ll
       10     </form>ITPUB个人空间:j N }"M!g"g2k
       11     <form. id="info">ITPUB个人空间4iZ,C7N#Y+a
       12       <var name="parameter"/>ITPUB个人空间7V.\)R1U7Ri6f
       13       <var name="password"/>
(Mc f W0rvA0       14       <block>
d A.I~tP j"\0       15         <if cond="parameter=='密码'">
:KN/CD;aN0       16          <assign name="password" expr="'1234567'"/>ITPUB个人空间;\T5`5C:}t#}G#|
       17         </if>
2V fA#@8cU0       18         <return namelist="password"/>
pv5C!o V Q9re0       19      </block>
HD{b&O"N9xS0       20     </form>
|'bW3n1R P e0       21  </vxml>
8u [5e uUr0 
5yxu@;h|HPBP0      3.1.38 <subdialog>ITPUB个人空间!yH!]Vnq^
 ITPUB个人空间&Cm jlj [`Ww
      向文件服务器上传数据。在下面的例子中,变量“company”被传到文件“process.asp”作处理,如果有多个变量要上传,用空格格开。ITPUB个人空间7y)qNOV,T[|2V2yM
 ITPUB个人空间n&f.A Xu/QF n jq
       1   <?xml version="1.0"?>ITPUB个人空间1q)[7\GM,j#e[
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间W z O(LcS%_
       3      <form>
R~6D(b%I9d3m qS0       4        <var name="company" expr="'华琛公司'"/>
7kN%Ty-n.NC0       5          <block>
3G:VHIN!yA0       6            <submit namelist="company" next="process.asp"/>
#v?,~xl:Eh0       7          </block>ITPUB个人空间"t&h \P,W2B
       8      </form>ITPUB个人空间'u.S2G7n5Ov j
       9   </vxml>ITPUB个人空间VfTb-o|2K
 
9V3YkmhLO)M*J%h0 ITPUB个人空间)s}y}.?
      process.asp:ITPUB个人空间e9Ad2L$X9j
 
tyF+QF0       1   <?xml version="1.0"?>ITPUB个人空间8Xb!T7}%SBl"w Yy
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间"e5o`)ply b6Df?
       3      <form>ITPUB个人空间 W} sS1KzgH
       4         <block>
*{0GeqR{0       5           您传过来的公司名是<%=request.QueryString("company")%>
T^D o-Q2k?]0       6         </block>ITPUB个人空间0G6~$w(]T)P1Ch:nl
       7      </form>ITPUB个人空间0m"W} x.? [A+Z#k
       8   </vxml>ITPUB个人空间7Kg Am,J7O1H)M
 
7G3X0`;U)uZT0 ITPUB个人空间 @4F(}{1Nf8[ X2Z
      3.1.39 <throw>
!v j6^3zEM|0 ITPUB个人空间R aq3x*?q
      抛出一个事件。可以是系统预定义的,如本例,<nomatch>、<noinput>、<help>等也是系统预定义的;也可以是程序定义的事件,如<throw event="weather"/>,抛出一个程序定义的事件“weather”。ITPUB个人空间2{'LR-t1@ BD*w
 
U.n@5?+^jje \0       1   <?xml version="1.0"?>
$\R)HZ7u0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间$b(r-v;e0pX,D v
       3      <form>
o/I5Z%gS2n0wX0       4        <error>ITPUB个人空间"WS+Pt9NLs
       5          <prompt>对不起您输入了错误密码。</prompt>
2~M tH8| Ok9`0       6          <disconnect/>ITPUB个人空间 v sb(fX
       7        </error>
5?YXo*l)[,q(?0       8        <field name="password " type="digits">ITPUB个人空间 X4P(M;`5Q^-g
       9         <prompt>请输入密码</prompt>
dtD&|!|(k`oBA0       10         <filled>ITPUB个人空间,fIj"['UL
       11          <if cond="password != '1234567'">ITPUB个人空间0I/V(^jp%c4v,m
       12            <throw event="error"/>
K!NC HU hS0       13          <else/>ITPUB个人空间 f"YB3wr of p
       14            密码正确。
]-B#R9ac'Y0       15          </if>
'{%k Ogz4ZMJ1h0       16         </filled>
@W:p$??1Jd0       17       </field>ITPUB个人空间Lww c B/Q'oT+V |j
       18     </form>ITPUB个人空间?CKn0Kf9c
       19  </vxml>ITPUB个人空间IX*{4f8A1W
 ITPUB个人空间'JI r!x(w
 ITPUB个人空间 R3V+D9ouF
      3.1.40 <transfer>
RD,xT3l0T0 
:h2E@/i ^+n-N0      让解释器把呼入者连接到另外一个电话(即电话转接)或语音应用程序。在下面的例子中,解释器把呼入者转接到另一个电话83158433。
x$t4b#aP\5Fs0 ITPUB个人空间s+~ J%N U"]#K
       1   <?xml version="1.0"?>
8h3|rA,B }0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间4w ]J Kd+B!ba
       3     <form>
`2e'~-c(I1v9Z#g0       4       <transfer name="mycall" dest="tel:83158433" vop_greeting="greetings.wav"ITPUB个人空间'F(LP#nax1D/A$F
                  vop_record="f:/record.wav"
PJ4{4Y$` L4vF0       5        transferaudio="fetchaudio.wav" connecttimeout="8s" maxtime="10000s"ITPUB个人空间 K Mw[9Am6NJ L
                  bridge="true" vop_listen="false">
]We-D&CE\_ a3M0       6        <filled>
}X6D"d1g)R0       7          <if cond="mycall == 'success'">ITPUB个人空间"e7[A`|xN
       8            <prompt>已返回有效的按键值</prompt>ITPUB个人空间5{b)EN%@] ?
       9          <elseif cond="mycall == 'far_end_disconnect'"/>
L+d Ss#Lz e0       10           <prompt>远端已挂机</prompt>
;yYT7c$HX(?0       11         <elseif cond="mycall == 'near_end_disconnect'"/>ITPUB个人空间S A Sk[%yw|4n
       12           <prompt>近端已挂机</prompt>ITPUB个人空间'i@s {2K1NB p1i j
       13         <elseif cond="mycall == 'busy'"/>
-Sy xx&F"^-\6\ dx8i-}0       14           <prompt>转接的电话忙</prompt>ITPUB个人空间 FU'OJ$]&X)ri ~qN
       15         </if>ITPUB个人空间Wis3hpzZ
       16        </filled>
,c@(_ m i'@ d*u0       17       </transfer>ITPUB个人空间F3?#D(S5@1Uf
       18     </form>
Go/ptzQ f(M0       19   </vxml>ITPUB个人空间Y/o*X!Df1MZ%m ct
 
QI:]*r.b/C0cExT0 
[{u^8RH:f%f5{0      3.1.41 <value>ITPUB个人空间"_"R-y1p2U"zSG
 
5h;c Z4q:y k J0      在提示中插入一个值。在下面的例子中输出“我学习VoiceXML。”。ITPUB个人空间7JO,p\%\h5@3l
 ITPUB个人空间4Y'C J'hyoeC
       1   <?xml version="1.0"?>ITPUB个人空间(fdv0K-I4Q:O \A
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间h,m*_#F@2rI#M
       3      <form>ITPUB个人空间~e8F1S8G(v9^3x
       4        <var name="verb" expr="'学习VoiceXML'"/>
DR/Tq%K;z0       5          <block>
!dM-kUk\0{0       6            我<value expr="verb"/>。ITPUB个人空间p\BM{3_
       7          </block>ITPUB个人空间iU0N)a%@y
       8      </form>ITPUB个人空间6aL)FUTJ-~
       9  </vxml>
p p?'X2H&P%J \ [5E|!Ow0 
}%k x9G H T5_@0 
gws p8Naq2x/M)D6[0      3.1.42 <var>ITPUB个人空间q:u~] OHi;^
 ITPUB个人空间C6E(U.U#s5`0q*I6s
      声明一个变量。在下面的例子中,声明了一个变量“verb”,并给它赋值“‘学习VoiceXML’”,本例输出提示“我学习VoiceXML。”。
i!`#s!hLn-^T7~0 ITPUB个人空间1h8BHMp*ix
       1   <?xml version="1.0"?>
7`]!B,A.e(nt0       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间r~+T:C-Se
       3      <form>
ntM^5O lsZF6@0       4        <var name="verb" expr="'学习VoiceXML'"/>
7IDR:~#J3k1} l0       5          <block>ITPUB个人空间/E?t&`$g j
       6            我<value expr="verb"/>。ITPUB个人空间4jL)V^V;Sp)h's
       7          </block>
4e([+e8h o4zn9f3f)M'e0       8      </form>ITPUB个人空间'K6Suk9a*lw0zN
       9  </vxml>
3p-X@7G,j+lU A g [A V0 
$Ky2{l+h`0 
u~r%|zK\/D g-r\0      3.1.43 <vxml>ITPUB个人空间}k_~0_-r
 
SN,OI&I6[0      VoiceXML文档标识,它是VoiceXML文档最顶级的元素。
$Y+w|d'c)DvA0 ITPUB个人空间$f?-RS#L2k'w
       1   <?xml version="1.0"?>ITPUB个人空间?!k2i,`_E;Q+X
       2   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">ITPUB个人空间.SWO/W)NY lX
       3      <form>
7J.g:kuzd0       4         <block>
*H:o?W};br qOh0       5            欢迎使用华琛公司语音系统。
N^%P2f-j+cI0       6         </block>
xV o[*wzBRL0       7      </form>ITPUB个人空间&O1N-Q9OTLy
       8  </vxml>ITPUB个人空间p%Ch7O&tA;m
 ITPUB个人空间{ B;O t`3i J` m
    3.2 SRGS1.0语法
<grammar>语法根元素
<meta>元内容描述
<metadata>元数据内容描述
<lexicon>指定发音字典
<rule>定义一条语法展开规则
<token>定义一个字或者其它输入实体
<ruleref>指向一个内部或外部定义
<item>定义一个展开项
<one-of>定义一组可选的展开规则
<example>在规则定义中提供一个匹配该规则的例子
<tag>在一个展开规则中定义一个任意串,该串可作为该展开规则的语义解释
 
3.2.1 <grammar>
W!~UY^Jt K0 ITPUB个人空间h#_U:N3Z7} t*? I#p9R
      语法根元素,以<grammar>作为根元素,表示这是一个语法文件。
"DB]2Y^,~0uUO0 ITPUB个人空间&DQ"q j |l a
       1   <?xml version="1.0"?>
1Qj&IJDw}@0       2   <grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar"
t!T1`-HZO T0             xml:lang="zh" root="DRINK" mode="voice">ITPUB个人空间cJR]1I'{7Tk T
       3      <rule id="DRINK" scope="public">ITPUB个人空间/RO%X.bX:a h,f:a;J
       4        <one-of>ITPUB个人空间,Z sFyc
       5          <item>咖啡</item>
3^)W h$d ^0       6          <item>牛奶</item>ITPUB个人空间J gc"R@R,q
       7        </one-of>ITPUB个人空间@c0Gn#{c3E*nv
       8      </rule>
.d-h$W9NGr#I!O-s0       9   </grammar>
+aY^w[M7n_0 ITPUB个人空间$ht[v;w O
 
V!yP^[8hu Q0      3.2.2 <meta>ITPUB个人空间-_R5|g)k.u`Qa
 
2B$N*o2@a6i0      3.2.3 <metadata>
9_F8],};X#g7wM0 ITPUB个人空间0Z9HSN xTz5^
      3.2.4 <lexicon>
5K7y5zfR$RL h0 ITPUB个人空间_@J0~i!u
      指定发音词典,在语法文件里可以指定一个或多个外部的发音词典。在下面的例子中,指定了两个外部的发音词典,分别由<lexicon>的属性uri指向。
7C@)u v}g0 
'}nRG2H0       1   <?xml version="1.0"?>
zMp)d7V[#u0       2   <grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar"
2e"Fy#JMq:{m%W0             xml:lang="zh" root="function" mode="voice">
&e,r5c&J,a#e Tf0       3     <lexicon uri="http://www.vopromote.com/lexicon.file"/>ITPUB个人空间.|bX\-W
       4     <lexicon uri=http://www.vopromte.com/names.file type="media-type"/>
wA[R(RQl9nn7U0       5     <rule id="function" scope="public">ITPUB个人空间`s QG q7n.r
       6       <one-of>ITPUB个人空间P e!\V1R m+u_0t
       7         <item>天气预报<tag>天气预报</tag></item>
V^T4h y(jis:Y0       8         <item>股票市场<tag>股票市场</tag></item>ITPUB个人空间xj(jDdt9L&_)?Pn
       9       </one-of>
!PYVz"|b0       10     </rule>
dOEbE @$s4}&S |"p0       11   </grammar>
w1|r+U"SUt.s-? w"rq0 
o8d#^dPk]@^0 
C%kw ~ I0Cx9w'|0      3.2.5 <rule>ITPUB个人空间M.@6H xB)t
 
-u @b2P0k a^!My},e0      定义一条语法展开规则,这条语法规则必须是合法的。一条合法的规则要有一个合法的名字,由<rule>的属性id来指定,名字必须是唯一的(在同一个语法文件里),不能和一些特定的语法规则名相同,例如“NULL”,“VOID”,“GARBAGE”。在下面的例子中,我们定义了一条名字为“function”的语法规则。
OW-X)O-x:z6M0 
SvuK&^ N0       1   <?xml version="1.0"?>ITPUB个人空间rF2J,A*Q;o7bG
       2   <grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar"
$e0k,e.k0y7k0             xml:lang="zh" root="function" mode="voice">
/Q O%K^U!Dzv&u P*rX0       3     <rule id="function" scope="public">ITPUB个人空间R|I-]4}|{+D|?t
       4       <one-of>ITPUB个人空间2L^y,K{d
       5         <item>天气预报<tag>天气预报</tag></item>ITPUB个人空间&x%a2Z X,Hb1i N
       6         <item>股票市场<tag>股票市场</tag></item>
:sH:L3| a8b6r"` X7M`0       7       </one-of>ITPUB个人空间}J#I&aMkL6R
       8     </rule>ITPUB个人空间O4n.{M.^"S
       9   </grammar>
Z Y"lGGOl8J q{0 ITPUB个人空间'v+} \5JB+q*~|
 ITPUB个人空间$~[r6ip
      3.2.6 <token>ITPUB个人空间+\-h0Dqg$b
 ITPUB个人空间2Qf2Wc b uX5l&o
      3.2.7 <ruleref>ITPUB个人空间V0g/WB f ~Fp6]
 ITPUB个人空间A1G%dz7i
      引用一条内部或者外部的语法规则,有几种用法,如:引用内部的语法规则,<ruleref uri="#rulename"/>,本例就是引用了一条内部的语法规则;引用外部语法的一条规则,<ruleref uri="grammarURI#rulename"/>;引用外部语法规则,<ruleref uri="grammarURI"/>;引用特定的语法规则,<ruleref uri="NULL"/>。ITPUB个人空间pG'ZyBy8H
 ITPUB个人空间9q!FH1vG@ k6b u
       1   <?xml version="1.0"?>
!a.q+?9e YU4W t#u8lP0       2   <grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar"ITPUB个人空间s v`k B
             xml:lang="zh" root="CITY_AND_PROVINCE" mode="voice">
1Z8jT/@{U0       3     <rule id="CITY_AND_PROVINCE" scope="public">
/az`qbN&[D&tC%V0       4       <one-of>
c(w5ME z$b+[L%m0       5         <item>
-Hb5SI R TEP0       6           <ruleref uri="#province"/>ITPUB个人空间o6qPqi
       7           <ruleref uri="#city"/>
7\+^0yH*r[o0       8         </item>ITPUB个人空间hm-o ~6C[W+z
       9         <item>ITPUB个人空间J"@R{Ep8b|T$p
       10           <ruleref uri="#province"/>
:tTaE1w'D%? Kq!l0       11         </item>
;H0`u)w7@+s0       12         <item>ITPUB个人空间.P{ s i4x+@$o9EN5n
       13           <ruleref uri="#city"/>
W W~U.I4a0       14         </item>ITPUB个人空间|gv JeKhi
       15       </one-of>ITPUB个人空间0]lFMvC
       16      </rule>
v/h6yo7F N&{Y)\0       17      <rule id="province">
tbq4C` s&m-O0       18        <one-of>
X"l$^u/dE0       19          <item>江苏<tag>江苏</tag></item>
b7R;L JWLV v.w*u0       20          <item>广东<tag>广东</tag></item>ITPUB个人空间S'PU+bV!iU)u*[SGI:x
       21        </one-of>ITPUB个人空间"c%F1u.a$^H
       22      </rule>ITPUB个人空间1kY,C$j#h@(d*wv
       23      <rule id="city">ITPUB个人空间 R)D d{ YH
       24        <one-of>ITPUB个人空间%dO0t5k'v7k7q5Z y^
       25          <item>南京<tag>南京</tag></item>ITPUB个人空间z,He$E Ylh
       26          <item>广州<tag>广州</tag></item>
`'CaY&[2?O:Xv0       27          <item>深圳<tag>深圳</tag></item>
/g}Hd8qg+k8v0       28        </one-of>ITPUB个人空间\$u#Cs$E9]@]Y
       29      </rule>ITPUB个人空间Y5E;\7[Lo#|)l
       30   </grammar>ITPUB个人空间 HU)AI'p^|
 ITPUB个人空间ew*sV2M)O }
 ITPUB个人空间uI3`{]y.z P7`
      3.2.8 <item>
R"YA:C)s/c.raj0 
va7|s%G7V`e0      定义一个可选的、可重复的或者可能的展开项。在下面的例子中,由两个<item>构成了两个可选的展开项,表示既可以输入“天气预报”,也可以输入“股票市场”。
9Nf\%q"|x0l$M R:s0 ITPUB个人空间;G}7D1z:v T
       1   <?xml version="1.0"?>ITPUB个人空间N*]/at?^
       2   <grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar"ITPUB个人空间$V.e+i4h8Ksh
             xml:lang="zh" root="function" mode="voice">
;ETD+i%g0       3     <rule id="function" scope="public">
3Id6Dx7Q,R)T T0       4       <one-of>ITPUB个人空间P%`-Rou8U-fp
       5         <item>天气预报</item>ITPUB个人空间"?'WtA-w+|?
       6         <item>股票市场</item>
7b-~@$lX0       7       </one-of>
%O*p"T2bRv8Ii:}0       8     </rule>
3hqx*N8{z xa0       9   </grammar>
s tO(v5U4tV` Na0 
R,o9@c1P{$D5x EW.o0 ITPUB个人空间RJ:P0[?He8p9Tk {
      3.2.9 <one-of>
t$G$OLg0 ITPUB个人空间5X fo8M rB
      定义一组可选的展开规则,输入只能匹配这组规则中的一个。下面的例子中,定义了两组可选的展开规则,输入只能匹配其中之一。ITPUB个人空间d*E_P [d#D(X
 ITPUB个人空间4Ub3L x1w
       1   <?xml version="1.0"?>
'd;T0HW_w(G5EY Q0       2   <grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar"
wUy;h!t,^Yh d0             xml:lang="zh" root="function" mode="voice">ITPUB个人空间v6X7d W,mn~K
       3     <rule id="function" scope="public">
/yi6d$Lx@&[8NK7h0       4       <one-of>ITPUB个人空间,~I3Ak%a6Xb
       5         <item>天气预报<tag>天气预报</tag></item>
#y1K$a.|$x}0       6         <item>股票市场<tag>股票市场</tag></item>ITPUB个人空间D2cr;gp7T
       7       </one-of>
)xBh7q+`-RM0       8     </rule>
,T/p^ W&]t0       9   </grammar>ITPUB个人空间7i%w&T;hS3ltz F Pp
 ITPUB个人空间#C+i)P'w.EL
 ITPUB个人空间r!Wj Jr8`/x3U
      3.2.10 <example>ITPUB个人空间0@ C&K|%FX
 ITPUB个人空间 o#B+Sdxbm*fL
      在规则定义中提供一个匹配该规则的例子,它只能用在<rule>中。下面的例子中,<example>提供了两个匹配该规则的例子。ITPUB个人空间*{!K(H*Z9a T
 ITPUB个人空间XH#g[4Pf+b9f2{0`Ns'm
       1   <?xml version="1.0"?>
E*C2kGi0       2   <grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar"ITPUB个人空间ms"_ GWESz
             xml:lang="zh" root="function" mode="voice">ITPUB个人空间]j#~ ^#o
       3     <rule id="function" scope="public">
0s;b7c R3U9Y!cR'\$Ax0       4       <example>我要了解天气预报</example>
~M:QL\J r0       5       <example>我要了解股票市场</example>ITPUB个人空间eY ma X M u$I2q
       6        我要了解ITPUB个人空间)a+T \+HY
       7       <one-of>
K-S%?7`;XW0       8         <item>天气预报<tag>天气预报</tag></item>
_F ] Fjj}!_L0       9         <item>股票市场<tag>股票市场</tag></item>
-Dq1P;X&c:tx&q5?i0       10       </one-of>ITPUB个人空间w5P,k.Z|-s;f
       11     </rule>
p]8oF"Ly0x1vg8p v0       12   </grammar>
zs7{;uza B5k/v0 ITPUB个人空间 uVfNd+i%Y

TAG:

 

评分:0

我来说两句

显示全部

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

Open Toolbar