Поделиться через


SrgsRule Конструкторы

Определение

Инициализирует новый экземпляр класса SrgsRule.

Перегрузки

SrgsRule(String)

Инициализирует новый экземпляр класса SrgsRule и задает идентификатор для правила.

SrgsRule(String, SrgsElement[])

Инициализирует новый экземпляр класса SrgsRule из массива объектов SrgsElement.

SrgsRule(String)

Исходный код:
SrgsRule.cs
Исходный код:
SrgsRule.cs
Исходный код:
SrgsRule.cs

Инициализирует новый экземпляр класса SrgsRule и задает идентификатор для правила.

public:
 SrgsRule(System::String ^ id);
public SrgsRule (string id);
new System.Speech.Recognition.SrgsGrammar.SrgsRule : string -> System.Speech.Recognition.SrgsGrammar.SrgsRule
Public Sub New (id As String)

Параметры

id
String

Идентификатор правила.

Исключения

id имеет значение null.

Параметр id пуст.

id не является соответствующим идентификатором правил.

Примеры

В следующем примере создается грамматика, которая распознает фразу "Нация, выиграющая Кубок мира", за которой следует название страны, выигравшей кубок мира. В примере создается объект с SrgsRule именем winnerRule и передается идентификатор WorldCupWinner в виде String. Объект SrgsOneOf состоит из массива новых SrgsItem объектов , содержащих альтернативы, распознаваемые правилом.

public void WorldSoccerWinners ()
{

  // Create an SrgsDocument, create a new rule
  // and set its scope to public.
  SrgsDocument document = new SrgsDocument();
  SrgsRule winnerRule = new SrgsRule("WorldCupWinner");
  winnerRule.Scope = SrgsRuleScope.Public;

  // Add the introduction.
  winnerRule.Elements.Add(new SrgsItem("A nation that has won the world cup is: "));

  // Create the rule for the European nations.
  SrgsOneOf oneOfEurope = new SrgsOneOf(new SrgsItem[] {new SrgsItem("England"),
    new SrgsItem("France"), new SrgsItem("Germany"), new SrgsItem("Italy")});
  SrgsRule ruleEurope = (new SrgsRule("EuropeanNations", new SrgsElement[] {oneOfEurope}));

  // Create the rule for the South American nations.
  SrgsOneOf oneOfSAmerica = new SrgsOneOf(new SrgsItem[] {new SrgsItem("Argentina"),
    new SrgsItem("Brazil"), new SrgsItem("Uruguay")});
  SrgsRule ruleSAmerica = (new SrgsRule("SouthAmericanNations", new SrgsElement[] {oneOfSAmerica}));

  // Add references to winnerRule for ruleEurope and ruleSAmerica.
  winnerRule.Elements.Add(new SrgsOneOf(new SrgsItem[] {(new SrgsItem
    (new SrgsRuleRef(ruleEurope))), new SrgsItem(new SrgsRuleRef(ruleSAmerica))}));

  // Add all the rules to the document and make winnerRule
  // the root rule of the document.
  document.Rules.Add(new SrgsRule[] {winnerRule, ruleEurope, ruleSAmerica});
  document.Root = winnerRule;
}

Комментарии

Конструктор SrgsRule инициализирует Id свойство . Идентификатор должен быть уникальным в пределах заданной грамматики.

Конструктор SrgsRule создает исключение FormatException в следующих случаях:

  • id не является допустимым именем XML, как определено в xml 1.0 (пятое издание) . Чтобы перефразировать это определение, допустимое имя XML должно начинаться с буквы, символа подчеркивания ('_') или двоеточия (':'), за которым может следовать ноль или более символов NameChar (также определенных в спецификации XML).

  • id имеет значение "NULL", "VOID" или "GARBAGE".

  • id содержит по крайней мере один недопустимый символ идентификатора правила. Эти символы: "?", "*", "+", "|", "(", "), "^", "$", "/", ";", ".", "=", "", "<", ">[", "]", "{", "}", "\\", "\t", "\r" и "\n".

См. также раздел

Применяется к

SrgsRule(String, SrgsElement[])

Исходный код:
SrgsRule.cs
Исходный код:
SrgsRule.cs
Исходный код:
SrgsRule.cs

Инициализирует новый экземпляр класса SrgsRule из массива объектов SrgsElement.

public:
 SrgsRule(System::String ^ id, ... cli::array <System::Speech::Recognition::SrgsGrammar::SrgsElement ^> ^ elements);
public SrgsRule (string id, params System.Speech.Recognition.SrgsGrammar.SrgsElement[] elements);
new System.Speech.Recognition.SrgsGrammar.SrgsRule : string * System.Speech.Recognition.SrgsGrammar.SrgsElement[] -> System.Speech.Recognition.SrgsGrammar.SrgsRule
Public Sub New (id As String, ParamArray elements As SrgsElement())

Параметры

id
String

Идентификатор правила.

elements
SrgsElement[]

Массив элементов SrgsElement.

Исключения

id имеет значение null.

elements имеет значение null.

Параметр id пуст.

id не является соответствующим идентификатором правил.

Примеры

В следующем примере создается грамматика, которая распознает фразу "Нация, выиграющая Кубок мира", за которой следует название страны, выигравшей кубок мира. В этом примере создается открытое правило с именем WorldCupWinner. Затем в примере создаются два SrgsRule объекта , ruleEurope и ruleSAmerica, передавая String для идентификатора правила и массив, SrgsElement содержащий SrgsOneOf объект . Затем в примере добавляются ссылки на правила в ruleEurope правило и ruleSAmerica из правила WorldCupWinner.

public void WorldSoccerWinners ()
{
  // Create a grammar from an SRGSDocument, create a new rule
  // and set its scope to public.
  SrgsDocument srgsGrammar = new SrgsDocument ();
  SrgsRule winnerRule = new SrgsRule ("WorldCupWinner");
  winnerRule.Scope = SrgsRuleScope.Public;

  // Add the introduction.
  winnerRule.Elements.Add (new SrgsItem ("A nation that has won the world cup is"));

  // Create the rule for the European nations.
  SrgsOneOf oneOfEurope = new SrgsOneOf(new SrgsItem[] {new SrgsItem("England"), new SrgsItem("France"), new SrgsItem("Germany"), new SrgsItem("Italy")});
  SrgsRule ruleEurope = (new SrgsRule("EuropeanNations", new SrgsElement[] {oneOfEurope}));

  // Create the rule for the South American nations.
  SrgsOneOf oneOfSAmerica = new SrgsOneOf(new SrgsItem[] {new SrgsItem("Argentina"), new SrgsItem("Brazil"), new SrgsItem("Uruguay")});
  SrgsRule ruleSAmerica = (new SrgsRule("SouthAmericanNations", new SrgsElement[] {oneOfSAmerica}));

  // Add references to winnerRule for ruleEurope and ruleSAmerica.
  winnerRule.Elements.Add(new SrgsOneOf(new SrgsItem[] {(new SrgsItem (new SrgsRuleRef(ruleEurope))), new SrgsItem(new SrgsRuleRef(ruleSAmerica))}));

  // Add all the rules to the grammar and make winnerRule
  // the root rule of the grammar.
  document.Rules.Add(new SrgsRule[] {winnerRule, ruleEurope, ruleSAmerica});
  srgsGrammar.Root = winnerRule;
}

Созданная грамматика имеет следующую форму.

<grammar version="1.0" xml:lang="en-US" xmlns="http://www.w3.org/2001/06/grammar" root="WorldCupWinner">
    <rule id="WorldCupWinner" scope="public">
        <item> A nation that has won the world cup is </item>
        <one-of>
            <item>
                <ruleref uri="#EuropeanNations" />
            </item>
            <item>
                <ruleref uri="#SouthAmericanNations" />
            </item>
        </one-of>
    </rule>
    <rule id="EuropeanNations">
        <one-of>
            <item> England </item>
            <item> France </item>
            <item> Germany </item>
            <item> Italy </item>
        </one-of>
    </rule>
    <rule id="SouthAmericanNations">
        <one-of>
            <item> Argentina </item>
            <item> Brazil </item>
            <item> Uruguay </item>
        </one-of>
    </rule>
</grammar>

Комментарии

Конструктор SrgsRule инициализирует Id свойство . Идентификатор должен быть уникальным в пределах заданной грамматики.

Конструктор SrgsRule создает исключение FormatException в следующих случаях:

  • id не является допустимым именем XML, как определено в xml 1.0 (пятое издание) . Чтобы перефразировать это определение, допустимое имя XML должно начинаться с буквы, символа подчеркивания ('_') или двоеточия (':'), за которым может следовать ноль или более символов NameChar (также определенных в спецификации XML).

  • id имеет значение "NULL", "VOID" или "GARBAGE".

  • id содержит по крайней мере один недопустимый символ идентификатора правила. Эти символы: "?", "*", "+", "|", "(", "), "^", "$", "/", ";", ".", "=", "", "<", ">[", "]", "{", "}", "\\", "\t", "\r" и "\n".

См. также раздел

Применяется к