catching error in <goto> inside or outside the form???

http://www.voicexml.org/conformance/samples/catch/catch.xml

( --> here is a modify version to permit to throw help event in my 
application, because i don't integrate a builtin help grammar )

<?xml version="1.0"?>
<vxml version="1.0">

<!-- Copyright (c) 2001 VoiceXML Forum.  All rights reserved.
   Samples are for illustrative purposes only.
-->


     <form>
         <var name="help_evt_caught" expr="0"/>
         <var name="noinput_evt_caught" expr="0"/>
         <var name="nomatch_evt_caught" expr="0"/>
         <var name="error_evt_caught" expr="0"/>
         <var name="overflow_appevt_caught" expr="0"/>

<!-- Personnal adding for <help> -->
         <link event="help">
                 <grammar> help | aide | "help me" </grammar>
                 <dtmf> * </dtmf>
         </link>


         <field name="a_fld">
             <dtmf>
                 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
             </dtmf>

             <prompt>
                 Enter a digit or say 'Help'.
             </prompt>

             <filled>
                 <if cond="a_fld > 5">
                     <throw event="event.MyApplicationEvent.OverFlow"/>
                 <else/>
                     <goto next="#unavailable_form"/>
                 </if>
             </filled>

             <help>
                 Give the following input for testing. No input. 5. 6. 0.
                 <assign name="help_evt_caught" expr="1"/>
                 <throw event="chk_result"/>
             </help>

             <nomatch>
                 The event 'no match' is thrown.
                 <assign name="nomatch_evt_caught" expr="1"/>
                 <throw event="chk_result"/>
             </nomatch>

             <noinput>
                 The event 'no input' is thrown.
                 <assign name="noinput_evt_caught" expr="1"/>
                 <throw event="chk_result"/>
             </noinput>

             <catch event="event.MyApplicationEvent.OverFlow">
                 <assign name="overflow_appevt_caught" expr="1"/>
                 Overflow occured.
                 <clear namelist="a_fld"/>
                 <throw event="chk_result"/>
             </catch>

             <error>
                 The error event is thrown.
                 <assign name="error_evt_caught" expr="1"/>
                 <clear namelist="a_fld"/>
                 <throw event="chk_result"/>
             </error>


         </field>

         <catch event="chk_result">
             <if cond="error_evt_caught == 1 
&amp;&amp;  overflow_appevt_caught  == 1 &amp;&amp; help_evt_caught == 1 
&amp;&amp; noinput_evt_caught == 1 &amp;&amp;  nomatch_evt_caught == 1" >
                 All tests completed and result is Pass.
                 <exit/>
             <else/>
                 Testing continues...<reprompt/>
             </if>
         </catch>
</form>
</vxml>



All the catch works correctly ... but, if i press 5, there is a <goto 
next="#unavailable_form"/>

--> Following this compliance test  (but i don't know if it is a compliance 
for w3c specs or for nuance server ;-))  ) , the goto error must be catch 
with the <error> in the <field> ...

My application doesn't catch this error ...
But, if i add
         <error>
                 The form error event is thrown.
                 <exit/>
         </error>
outside the <form>

it is catched ...

What do you think about that???

If I have a goto, it's because i leave the form ... but during the process 
of fetching new form, there is a problem ... thus, for me, the error event 
is throw outside the form, and the compliance test is not correct ... Is 
someone can give me the proof that i'm wrong?

Thanks

Jean-Michel

Jean-Michel Reghem
Voice Technology Development Engineer
E-Mail : mailto:reghem@babeltech.com

Babel Technologies S.A.
Boulevard Dolez 33  B-7000 Mons (Belgium)
Tel: +32-(0)65 37.43.03
http://www.babeltech.com

Received on Thursday, 21 February 2002 03:59:50 UTC