$Id: 00README,v 1.1 2006/08/24 03:45:43 nishi Exp $

(c)2003 Takuya NISHIMOTO (nishi@hil.t.u-tokyo.ac.jp)

phoenix/document/00README

ܥɥȤϡVXMLDoc.java  VoiceXML ե
ޥɤѴξܺ٤򵭽ҤΤǤ

===========================================
Application Root Document ν
===========================================

  document = new Object(); 
  dialog = new Object(); 
  var $root = '/path/to/drivenavi_root.vxml';
  if ( $current_root == undefined ) {
     var $current_root;
  }
  if ( $current_root != $root ) {
     $current_root = $root;
     session = new Object();
     application = new Object(); 
    
     application.spot_genre=null;
     application.time_required=null; 
     application.genre_detail=null;
     application.price=null; 
     application.debug=false; 
  }

===========================================
ץץ򥢥르ꥺ
===========================================

*** source ***

<form id="main">
 <field name="place">
  <prompt> ɤ</prompt>
  <prompt count="3"> ȵԤΤɤǤ</prompt>
  <grammar>
   <rule><token phoneme="t;o:;ky;o:;"></token></rule>
   <rule><token phoneme="ky;o:;t;o;"></token></rule>
  </grammar>
 </field>
 <block> <goto next="#confirm"/> </block>
</form>

*** target ***

<state id="@main.place">
 <cmd>
  <next>'@main.place'</next>

  <cmd cond="!main.place$.noprompt">
   // ʤ cond == false 
   <script with="main.place$">
     p1 = true;    
     p2 = true;    
   </script>
   // cc := ߤΥͰʲǡǤ count °κ
   // cc=correct count
   <script with="main.place$">
     cc = 1;	    
     // p1: count=null then "1"
     // p2: count="3"
     if ( 1 <= promptcount && cc < 1 ) {cc = 1}
     if ( 3 <= promptcount && cc < 3 ) {cc = 3}
   </script>
   // cc Ʊ count ͤʤǤꥹȤ
   //  cond Ǻ줿ΤϤ餫 false
   <script with="confirm.select$">
     if ( 1 != cc ) { p1=false }
     if ( 3 != cc ) { p2=false }
   </script>

   <!-- Ск inc -->
   <script>main.place$.promptcount++;</script>
   <!-- execute prompt list -->
   <cmd cond="main.place$.p1">
    <add><voice with="main">'ɤ'</voice></add>
   </cmd>
   <cmd cond="main.place$.p2">
    <add><voice with="main">'ȵԤΤɤǤ'</voice></add>
   </cmd>

  </cmd> // cond="!main.place$.noprompt"

  <add><break length="10.0"/></add>
 </cmd>

 <catch next="@main.place.$1"></catch>
 <catch next="@main.place.$2"></catch>
</state>

*** source ***

<menu id="confirm">
 <prompt>Ǥ</prompt>
 <prompt count="2">ϤޤϡǤ</prompt>
 <prompt count="4">äɤäǤ</prompt>
 <choice next="#yes">
  <grammar><rule> <token phoneme="h;a;i;">Ϥ</token> </rule></grammar>
 </choice>
 <choice next="#no">
  <grammar><rule> <token phoneme="i:;e;"></token> </rule></grammar>
 </choice>
</menu>

*** target ***

<state id="@confirm._menu_">
<--
[p1]<prompt>Ǥ</prompt>
[p2]<prompt cond="hoge==true">ۤ</prompt>
[p3]<prompt count="2">ϤޤϡǤ</prompt>
[p4]<prompt count="4">äɤäǤ</prompt>
-->
 <cmd>
  <cmd>
   // ʤ cond == false 
   <script with="confirm.select$">
     p1 = true;    
     p2 = (hoge==true);
     p3 = true;    
     p4 = true;    
   </script>

   // cc := ߤΥͰʲǡǤ count °κ
   // cc=correct count
   <script with="confirm._menu_$">
     cc = 1;	    
     // p1: count=null then "1"
     // p2: count=null then "1"
     // p3: count="2"
     // p4: count="4"
     if ( 1 <= promptcount && cc < 1 ) {cc = 1}
     if ( 1 <= promptcount && cc < 1 ) {cc = 1}
     if ( 2 <= promptcount && cc < 2 ) {cc = 2}
     if ( 4 <= promptcount && cc < 4 ) {cc = 4}
     // :
     //  if promptcount=1, cc=1 : ¹Ԥʤ  : cc = 1 (p1,p2)
     //  if promptcount=2, cc=1 : 3ܼ¹ : cc = 2 (p3)
     //  if promptcount=3, cc=2 : ¹Ԥʤ  : cc = 2 (p3)
     //  if promptcount=4, cc=2 : 4ܼ¹ : cc = 4 (p4)
     //  if promptcount=5, cc=4 : ¹Ԥʤ  : cc = 4 (p4)
   </script>

   // cc Ʊ count ͤʤǤꥹȤ
   //  cond Ǻ줿ΤϤ餫 false
   <script with="confirm._menu_$">
     if ( 1 != cc ) { p1=false }
     if ( 1 != cc ) { p2=false }
     if ( 2 != cc ) { p3=false }
     if ( 4 != cc ) { p4=false }
   </script>
  </cmd>

  <!-- inc promptcount -->
  <script>confirm._menu_$.promptcount++;</script>

  <!-- execute prompt list -->
  <cmd cond="confirm._menu_$.p1">
   <add><voice with="confirm">'Ǥ'</voice></add>
   <add><break length="10.0"/></add>
  </cmd>
  <cmd cond="confirm._menu_$.p2">
   <add><voice with="confirm">'ϤޤϡǤ'</voice></add>
   <add><break length="10.0"/></add>
  </cmd>
  <cmd cond="confirm._menu_$.p2">
   <add><voice with="confirm">'äɤäǤ'</voice></add>
   <add><break length="10.0"/></add>
  </cmd>

 </cmd>
 <catch next="@yes">Ϥ</catch>
 <catch next="@no"></catch>
</state>

[end of file]
