2015-04-06 5 views
0

Мне нужно написать код GRXML, который позволяет мне ввести имя пользователя с любым количеством цифр, заканчивающееся #. Я написал это, но он не работает:Написание кода 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

Пожалуйста, объясните, насколько ваш код не работает. – honk

+0

, когда я пишу номер, и я нажимаю #, чтобы закончить, он дает мне сообщение об ошибке. –

+0

Сообщение об ошибке _What_? Пожалуйста, отредактируйте (http://stackoverflow.com/posts/29472912/edit) свой вопрос и предоставьте как можно больше информации. Пожалуйста, помогите читателям помочь вам. Кроме того, подумайте о лучшем названии. Нынешнее название вряд ли привлечет многих читателей. Если вам нужно руководство, пожалуйста, примите [тур] (http://stackoverflow.com/tour) и прочитайте [Как спросить] (http://stackoverflow.com/questions/how-to -ask). – honk

ответ

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> 
Смежные вопросы