SrgsRule Constructors

Definitie

Initialiseert een nieuw exemplaar van de SrgsRule klasse.

Overloads

Name Description
SrgsRule(String)

Initialiseert een nieuw exemplaar van de SrgsRule klasse en geeft de id voor de regel op.

SrgsRule(String, SrgsElement[])

Initialiseert een nieuw exemplaar van de SrgsRule klasse op basis van een matrix met SrgsElement objecten.

SrgsRule(String)

Initialiseert een nieuw exemplaar van de SrgsRule klasse en geeft de id voor de regel op.

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)

Parameters

id
String

De id van de regel.

Uitzonderingen

id is null.

id is geen juiste regel-id.

Voorbeelden

In het volgende voorbeeld wordt een grammatica gemaakt die de zin 'Een natie die de Wereldbeker heeft gewonnen' herkent, gevolgd door de naam van een land dat de Wereldbeker heeft gewonnen. In het voorbeeld wordt een SrgsRule object gemaakt met de naam winnerRule en wordt de id WorldCupWinner doorgegeven als een String. Het SrgsOneOf object bestaat uit een matrix met nieuwe SrgsItem objecten die alternatieven bevatten die door de regel moeten worden herkend.

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;
}

Opmerkingen

De SrgsRule constructor initialiseert de Id eigenschap. De id moet uniek zijn binnen een bepaalde grammatica.

De SrgsRule constructor genereert een FormatException in de volgende omstandigheden:

  • idis geen geldige XML-naam, zoals gedefinieerd in Extensible Markup Language (XML) 1.0 (Vijfde editie). Als u deze definitie wilt parafraseren, moet een geldige XML-naam beginnen met een letter, een onderstrepingsteken ('_') of een dubbele punt (':') en kunnen worden gevolgd door nul of meer NameChar-tekens (ook gedefinieerd in de XML-specificatie).

  • id is 'NULL' of 'VOID' of 'GARBAGE'.

  • id bevat ten minste één ongeldig regel-id-teken. Deze tekens zijn: '?', '*', '+', '|', '(', '^', '$', '/', ';', '.', '=', '', '<', '', '>[', ']', '{', '}', '\\', ', '\t', '\r' en '\n'.

Zie ook

Van toepassing op

SrgsRule(String, SrgsElement[])

Initialiseert een nieuw exemplaar van de SrgsRule klasse op basis van een matrix met SrgsElement objecten.

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())

Parameters

id
String

De id van de regel.

elements
SrgsElement[]

Een matrix met SrgsElement elementen.

Uitzonderingen

id is null.

elements is null.

id is geen juiste regel-id.

Voorbeelden

In het volgende voorbeeld wordt een grammatica gemaakt die de zin 'Een natie die de Wereldbeker heeft gewonnen' herkent, gevolgd door de naam van een land dat de Wereldbeker heeft gewonnen. In het voorbeeld wordt een openbare regel gemaakt met de naam WorldCupWinner. In het voorbeeld worden vervolgens twee SrgsRule objecten ruleEurope gemaakt en wordt een String voor de regel-id en ruleSAmericaeen SrgsElement matrix met een SrgsOneOf object doorgegeven. Vervolgens voegt het voorbeeld regelverwijzingen toe aan ruleEurope en ruleSAmerica van de regel 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;
}

De gemaakte grammatica heeft het volgende formulier.

<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>

Opmerkingen

De SrgsRule constructor initialiseert de Id eigenschap. De id moet uniek zijn binnen een bepaalde grammatica.

De SrgsRule constructor genereert een FormatException in de volgende omstandigheden:

  • idis geen geldige XML-naam, zoals gedefinieerd in Extensible Markup Language (XML) 1.0 (Vijfde editie). Als u deze definitie wilt parafraseren, moet een geldige XML-naam beginnen met een letter, een onderstrepingsteken ('_') of een dubbele punt (':') en kunnen worden gevolgd door nul of meer NameChar-tekens (ook gedefinieerd in de XML-specificatie).

  • id is 'NULL' of 'VOID' of 'GARBAGE'.

  • id bevat ten minste één ongeldig regel-id-teken. Deze tekens zijn: '?', '*', '+', '|', '(', '^', '$', '/', ';', '.', '=', '', '<', '', '>[', ']', '{', '}', '\\', ', '\t', '\r' en '\n'.

Zie ook

Van toepassing op