Ruleref

Материал из VXML
Перейти к: навигация, поиск


Элемент <ruleref> позволяет использовать существующее правило в текущей грамматике (см. элемент <grammar>).

Синтаксис

<ruleref
     special = "(NULL|VOID|GARBAGE)"
     uri = "CDATA"/>

Атрибуты

  • special — атрибут, содержащий наименования специальных правил, которые невозможно переопределить в грамматике. Допустимые значения:
  1. NULL — правило, используемое при отсутствии речи абонента.
  2. VOID — правило, которое никогда не будет использовано.
  3. GARBAGE — правило, в рамках которого абонент может сказать любую речь между фразами, которые определены иными правилами.
    (Необходимость указания: необязательно)
  • uri — атрибут, содержащий ссылку на существующее правило
    (Необходимость указания: необязательно)

ЗАМЕЧАНИЕ №1: при использовании элемента <ruleref> обязательно должен быть использован ровно один атрибут: special или uri.
ЗАМЕЧАНИЕ №2: ресурсы распознавания речи не всех производителей поддерживают использование специальных правил, указываемых в атрибуте special.
ЗАМЕЧАНИЕ №3: для использования правила грамматики, находящегося в том же файле, где и элемент <ruleref>, в атрибуте uri необходимо использовать ссылку вида "#Rule" (где Rule - наименование правила). Для использования правила, расположенного в ином файле, ссылка должна иметь вид "Grammar.xml#Rule" (где Grammar.xml — наименование файла с грамматикой, Rule — наименование правила).

Родители

<item> <rule>

Потомки

none

Пример

<?xml version="1.0" encoding="UTF-8"?> 
<vxml version = "2.1" xml:lang="ru-RU"> 
  <form id="F1"> 
    <field name="num"> 
      <prompt> 
        Назовите код и номер телефона по цифрам.
      </prompt>
      <noinput>Говорите громче. <reprompt/> </noinput>
      <nomatch>Не удалось распознать сказанное слово. <reprompt/> </nomatch>	   
      <grammar xml:lang="ru-RU" root="main" mode="voice" version="1.0" tag-format="semantics/1.0">
        <rule id="main">
          <item repeat="0-1">
            <one-of>
              <item>8</item>
              <item>+7</item>
              <item>7</item>
            </one-of>
          </item>
          <item><ruleref uri="#digits"/><tag>out.num=rules.digits</tag></item>
          <item repeat="9"><ruleref uri="#digits"/><tag>out.num+=""+rules.digits</tag></item>
        </rule>
        <rule id="digits">
          <one-of>
            <item>1<tag>out="1"</tag></item>
            <item>2<tag>out="2"</tag></item>
            <item>3<tag>out="3"</tag></item>
            <item>4<tag>out="4"</tag></item>
            <item>5<tag>out="5"</tag></item>
            <item>6<tag>out="6"</tag></item>
            <item>7<tag>out="7"</tag></item>
            <item>8<tag>out="8"</tag></item>
            <item>9<tag>out="9"</tag></item>
            <item>0<tag>out="0"</tag></item>
          </one-of>
        </rule>		 
      </grammar>  
      <filled> 
        <prompt>
          Номер телефона: 
          <say-as interpret-as="telephone"> 		   
            <value expr="num"/>. 
          </say-as>
        </prompt> 
      </filled> 
    </field>
  </form> 
</vxml>



Добавить новый комментарий
Если не хотите писать от анонимного пользователя, зарегистрируйтесь или представьтесь системе.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Статьи
Грамматики
Элементы VXML
Элементы SSML
Инструменты