我必须编写GRXML代码,允许我输入任意位数的用户名,以#
结尾。我写过这个,但它不起作用:
<grammar version='1.0'
mode='dtmf'
root='RefSaisieClient'>
<rule id="RefSaisieClient">
<item repeat="1-">
<one-of>
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
</one-of>
</item>
<item>#</item>
</rule>
</grammar>
答案 0 :(得分:1)
#
通常是默认的终止字符,不应包含在您的语法中。尝试删除它,看看是否能解决您的问题。
您还可以尝试使用两个规则,例如:
<rule id="RefSaisieClient">
<item repeat="1-">
<ruleref uri="#AllowableDigits"/>
</item>
</rule>
<rule id="AllowableDigits" scope="public">
<item>
<one-of>
<item> 1 </item>
<item> 2 </item>
<item> 3 </item>
<item> 4 </item>
<item> 5 </item>
<item> 6 </item>
<item> 7 </item>
<item> 8 </item>
<item> 9 </item>
<item> 0 </item>
</one-of>
</item>
</rule>