Compartilhar via


SrgsRule Construtores

Definição

Inicializa uma nova instância da classe SrgsRule.

Sobrecargas

SrgsRule(String)

Inicializa uma nova instância da classe SrgsRule e especifica o identificador para a regra.

SrgsRule(String, SrgsElement[])

Inicializa uma nova instância da classe SrgsRule de uma matriz de objetos SrgsElement.

SrgsRule(String)

Origem:
SrgsRule.cs
Origem:
SrgsRule.cs
Origem:
SrgsRule.cs

Inicializa uma nova instância da classe SrgsRule e especifica o identificador para a regra.

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)

Parâmetros

id
String

O identificador da regra.

Exceções

id é null.

id está vazio.

id não é um identificador de regra adequado.

Exemplos

O exemplo a seguir cria uma gramática que reconhece a frase "Uma nação que ganhou a Copa do Mundo é" seguida pelo nome de um país que ganhou a Copa do Mundo. O exemplo cria um SrgsRule objeto chamado winnerRule e passa o identificador WorldCupWinner como um String. O SrgsOneOf objeto consiste em uma matriz de novos SrgsItem objetos que contêm alternativas a serem reconhecidas pela regra.

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

Comentários

O SrgsRule construtor inicializa a Id propriedade . O identificador deve ser exclusivo dentro de uma determinada gramática.

O SrgsRule construtor lança um FormatException nas seguintes circunstâncias:

  • id não é um nome XML válido, conforme definido em Linguagem de Marcação Extensível (XML) 1.0 (Quinta Edição). Parafrasear essa definição, um nome XML válido deve começar com uma letra, um sublinhado ('_') ou dois-pontos (':') e pode ser seguido por zero ou mais caracteres NameChar (também definidos na especificação XML).

  • id é "NULL" ou "VOID" ou "GARBAGE".

  • id contém pelo menos um caractere de ID de regra inválido. Esses caracteres são: '?', '*', '+', '|', '(', '), '^', '$', '/', ';', '.', '=', '<', '>', '[', ']', '{', '}', '\\', ' ', '\t', '\r' e '\n'.

Confira também

Aplica-se a

SrgsRule(String, SrgsElement[])

Origem:
SrgsRule.cs
Origem:
SrgsRule.cs
Origem:
SrgsRule.cs

Inicializa uma nova instância da classe SrgsRule de uma matriz de objetos 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())

Parâmetros

id
String

O identificador da regra.

elements
SrgsElement[]

Uma matriz de elementos SrgsElement.

Exceções

id é null.

elements é null.

id está vazio.

id não é um identificador de regra adequado.

Exemplos

O exemplo a seguir cria uma gramática que reconhece a frase "Uma nação que ganhou a Copa do Mundo é" seguida pelo nome de um país que ganhou a Copa do Mundo. O exemplo cria uma regra pública chamada WorldCupWinner. Em seguida, o exemplo cria dois SrgsRule objetos, ruleEurope e ruleSAmerica, passando um String para o identificador de regra e uma SrgsElement matriz que contém um SrgsOneOf objeto . Posteriormente, o exemplo adiciona referências de regra de e ruleSAmerica para ruleEurope a regra 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;
}

A gramática criada tem o seguinte formulário.

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

Comentários

O SrgsRule construtor inicializa a Id propriedade . O identificador deve ser exclusivo dentro de uma determinada gramática.

O SrgsRule construtor lança um FormatException nas seguintes circunstâncias:

  • id não é um nome XML válido, conforme definido em Linguagem de Marcação Extensível (XML) 1.0 (Quinta Edição). Parafrasear essa definição, um nome XML válido deve começar com uma letra, um sublinhado ('_') ou dois-pontos (':') e pode ser seguido por zero ou mais caracteres NameChar (também definidos na especificação XML).

  • id é "NULL" ou "VOID" ou "GARBAGE".

  • id contém pelo menos um caractere de ID de regra inválido. Esses caracteres são: '?', '*', '+', '|', '(', '), '^', '$', '/', ';', '.', '=', '<', '>', '[', ']', '{', '}', '\\', ' ', '\t', '\r' e '\n'.

Confira também

Aplica-se a