mb_language("uni"); mb_internal_encoding("utf-8"); mb_http_input("auto"); mb_http_output("utf-8"); ?>
全文については,Printers Circle(2007年12月号)をご覧ください。
▼図1 共通スタイルで指定した文書の例
<?xml version="1.0"?>
<vxml version="2.0">
<form>
<field name="内容">
<prompt>どの内容をマークアップしますか?</prompt>
<grammar type="text/gsl"> [ (数式) (楽譜) (分子構造)] </grammar>
</field>
</form>
</vxml>
▼図1-2 HTMLによるフォーム
<html>
<body>
<form method="POST" action="http://www.jagat.or.jp/sgml/query.cgi">
<p>どの内容をマークアップしますか?</p>
<input type="radio" name="内容" value="数式">
<input type="radio" name="内容" value="楽譜">
<input type="radio" name="内容" value="分子構造">
</form>
</body>
</html>
▼図3-1 CCXMLの記述(dialog.vxmlを呼び出すdialog.ccxml)
<?xml version="1.0"?>
<ccxml version="1.0" xmlns="http://www.w3.org/2002/09/ccxml">
<!-- 状態変数の宣言 -->
<var name="Var" expr="'init'"/> <!-- 状態を初期状態とする -->
<eventprocessor statevariable="Var"> <!-- イベント処理 -->
<!-- 初期状態で警報があった場合 -->
<transition state="init" event="connection.alerting">
<accept/> <!-- システムへ接続する -->
</transition>
<!-- 初期状態で接続された場合 -->
<transition state="init" event="connection.connected">
<log expr="'開始する。'"/>
<dialogstart src="'dialog.vxml'"/> <!-- 音声対話を開始する -->
<assign name="Var" expr="'dialogActive'" /> <!-- 状態を対話中とする -->
</transition>
<!-- 対話中状態で対話が終了した場合 -->
<transition state="dialogActive" event="dialog.exit">
<log expr="'「' + event$.values.input + '」という返答があった。'" />
<exit/> <!-- 終了する -->
</transition>
<!-- 切断された場合 -->
<transition event="connection.disconnected">
<exit/> <!-- 終了する -->
</transition>
<!-- エラーが発生した場合 -->
<transition event="error.*" >
<log expr="'「' + event$.reason + '」という問題が生じた。'"/>
<exit/> <!-- 終了する -->
</transition>
</eventprocessor>
</ccxml>
▼図3-2 VoiceXMLの記述(dialog.ccxmlから呼び出されるdialog.vxml)
<?xml version="1.0"?>
<vxml xmlns="http://www.w3.org/2001/vxml" version="2.0">
<form id="Form">
<field name="input" type="digits">
<prompt>番号を言ってください。</prompt>
<filled><exit namelist="input"/></filled>
</field>
</form>
</vxml>
▲このページのTOPへ