0

在这段VXML代码中,块的 exprtruefalse解释器不读取块,只打印出没有表达式的块 3,那么块具有表达式值true或有什么区别false

<?xml version="1.0" ?>
 <!DOCTYPE vxml PUBLIC "-//BeVocal Inc//VoiceXML 2.0//EN"
  "http://cafe.bevocal.com/libraries/dtd/vxml2-0-bevocal.dtd">
 <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
   <form id="foo">
     <block expr="true">
       <prompt>
         block1
       </prompt>
     </block>
     <block expr="false">
       <prompt>
         block2
       </prompt>
     </block>
     <block>
       <prompt>
         block3
       </prompt>
     </block>
   </form>
 </vxml>
4

1 回答 1

1

根据VXML 2.0 规范,标签上的 expr 属性具有以下功能:

"表单项变量的初始值;默认为 ECMAScript undefined。如果初始化为一个值,则除非清除表单项变量,否则不会访问该表单项。

因为您已经为前两个块初始化了一个值,所以它们不会被访问。(表单解释算法指定将访问具有未设置值的第一个项目。)您可能会将 expr 与 cond 属性混淆,该属性可用于向项目添加条件以额外控制是否访问该项目。有关 expr 和 cond 属性的更多详细信息,请参阅规范的第 2.1.3 节。

于 2011-08-09T17:42:04.213 回答