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
пуст.
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".