SrgsRule 构造函数

定义

初始化 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

规则的标识符。

例外

idnull

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 元素组成的数组。

例外

idnull

elementsnull

id 不是正确的规则标识符。

示例

以下示例创建一个语法,该语法识别短语“赢得世界杯的国家是”,后跟赢得世界杯的国家的名称。 该示例创建一个名为 WorldCupWinner的公共规则。 然后,该示例创建两SrgsRuleString 对象, ruleEuroperuleSAmerica,为规则标识符传入 ,以及一个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”。

另请参阅

适用于