SrgsRule 构造函数
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
初始化 SrgsRule 类的新实例。
重载
SrgsRule(String) |
初始化 SrgsRule 类和指定规则的标识符的新实例。 |
SrgsRule(String, SrgsElement[]) |
从 SrgsElement 对象的数组初始化 SrgsRule 类的新实例。 |
SrgsRule(String)
- Source:
- SrgsRule.cs
- Source:
- SrgsRule.cs
- Source:
- 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
至少包含一个无效的规则 ID 字符。 这些字符为:“?”、“*”、“+”、“|”、“ (”、“) ”、“^”、“$”、“/”、“;”、“.”、“.”、“=<”、“”、“”、“>'”、“[”、“]”、“{”、“}”、“\\”、“”、“\、”、“\t”、“\r”和“\n”。
另请参阅
适用于
SrgsRule(String, SrgsElement[])
- Source:
- SrgsRule.cs
- Source:
- SrgsRule.cs
- Source:
- SrgsRule.cs
从 SrgsElement 对象的数组初始化 SrgsRule 类的新实例。
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个 String 对象, ruleEurope
和 ruleSAmerica
,为规则标识符传入 ,以及一个SrgsElementSrgsOneOf包含 对象的数组。 随后,该示例向 和 ruleSAmerica
从规则 添加规则WorldCupWinner
引用ruleEurope
。
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
至少包含一个无效的规则 ID 字符。 这些字符为:“?”、“*”、“+”、“|”、“ (”、“) ”、“^”、“$”、“/”、“;”、“.”、“.”、“=<”、“”、“”、“>'”、“[”、“]”、“{”、“}”、“\\”、“”、“\、”、“\t”、“\r”和“\n”。