SrgsDocument Конструкторы

Определение

Инициализирует новый экземпляр класса SrgsDocument.

Перегрузки

SrgsDocument()

Инициализирует новый экземпляр класса SrgsDocument.

SrgsDocument(GrammarBuilder)

Инициализирует новый экземпляр класса SrgsDocument из объекта GrammarBuilder.

SrgsDocument(SrgsRule)

Инициализирует новый экземпляр класса SrgsDocument и задает объект SrgsRule, который должен функционировать как корневое правило грамматики.

SrgsDocument(String)

Инициализирует новый экземпляр класса SrgsDocument, указывающий местоположение XML-документа, который используется для заполнения экземпляра SrgsDocument.

SrgsDocument(XmlReader)

Инициализирует новый экземпляр класса SrgsDocument из экземпляра XmlReader, который ссылается на файл грамматики XML-формата.

Комментарии

Используя конструкторы для SrgsDocument класса, можно создать экземпляр SrgsDocument из GrammarBuilder SrgsRule объекта, или XmlReader , из строки, СОДЕРЖАЩЕЙ путь к грамматике XML-формата, или же можно инициировать пустой экземпляр SrgsDocument .

SrgsDocument()

Инициализирует новый экземпляр класса SrgsDocument.

public:
 SrgsDocument();
public SrgsDocument ();
Public Sub New ()

Примеры

В следующем примере создается SrgsDocument объект, а затем создается открытое правило с именем winnerRule . Затем он создает SrgsItem , состоящий из строки "страна, в которой заключена Всемирная чашка:" и добавляет этот элемент к Elements свойству правила. Затем в примере создаются два правила ( ruleEurope и ruleSAmerica ), каждый из которых является SrgsOneOf объектом, содержащим три объекта SrgsItem . После этого создается другой SrgsOneOf объект, содержащий SrgsRuleRef объекты, которые ссылаются на ruleEurope и ruleSAmerica . Затем новый SrgsOneOf объект добавляется в Elements свойство объекта winnerRule . После этого все три правила ( winnerRule , ruleEurope и ruleSAmerica ) добавляются к Rules свойству объекта SrgsDocument . Наконец, три правила компилируются в двоичное представление грамматики.

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;  

  String fileName = Path.GetTempFileName();  
  using (FileStream stream = new FileStream(fileName, FileMode.Create))   
  {   

    // Compile the grammar to a binary format.  
    SrgsGrammarCompiler.Compile(document, stream);   
  }  
}  

Комментарии

Этот конструктор создает пустой SrgsDocument экземпляр. Чтобы создать грамматику в пустом SrgsDocument экземпляре, добавьте экземпляры классов, представляющие элементы SRGS, такие как SrgsRule ,, SrgsRuleRef SrgsOneOf и SrgsItem .

Применяется к

SrgsDocument(GrammarBuilder)

Инициализирует новый экземпляр класса SrgsDocument из объекта GrammarBuilder.

public:
 SrgsDocument(System::Speech::Recognition::GrammarBuilder ^ builder);
public SrgsDocument (System.Speech.Recognition.GrammarBuilder builder);
new System.Speech.Recognition.SrgsGrammar.SrgsDocument : System.Speech.Recognition.GrammarBuilder -> System.Speech.Recognition.SrgsGrammar.SrgsDocument
Public Sub New (builder As GrammarBuilder)

Параметры

builder
GrammarBuilder

Объект GrammarBuilder, используемый для создания экземпляра SrgsDocument.

Исключения

builder имеет значение null.

Примеры

В следующем примере выполняется построение грамматики в GrammarBuilder экземпляре с помощью Choices объектов. Затем он создает объект SrgsDocument из GrammarBuilder объекта.

GrammarBuilder builder = null;  

// Create new Choices objects and add countries/regions, and create GrammarBuilder objects.  
Choices choicesEurope = new Choices(new string[] { "England", "France", "Germany", "Italy" });  
GrammarBuilder europe = new GrammarBuilder(choicesEurope);  

Choices choicesSAmerica = new Choices(new string[] { "Argentina", "Brazil", "Uruguay" });  
GrammarBuilder sAmerica = new GrammarBuilder(choicesSAmerica);  

Choices worldCupWinnerChoices = new Choices(new GrammarBuilder[] {choicesEurope, choicesSAmerica});  

// Create new GrammarBuilder from a Choices object.  
builder = new GrammarBuilder(worldCupWinnerChoices);  

// Create an SrgsDocument object from a GrammarBuilder object.  
SrgsDocument document = new SrgsDocument(builder);  

Применяется к

SrgsDocument(SrgsRule)

Инициализирует новый экземпляр класса SrgsDocument и задает объект SrgsRule, который должен функционировать как корневое правило грамматики.

public:
 SrgsDocument(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ grammarRootRule);
public SrgsDocument (System.Speech.Recognition.SrgsGrammar.SrgsRule grammarRootRule);
new System.Speech.Recognition.SrgsGrammar.SrgsDocument : System.Speech.Recognition.SrgsGrammar.SrgsRule -> System.Speech.Recognition.SrgsGrammar.SrgsDocument
Public Sub New (grammarRootRule As SrgsRule)

Параметры

grammarRootRule
SrgsRule

root rule в объекте SrgsDocument.

Исключения

grammarRootRule имеет значение null.

Примеры

В следующем примере создаются два правила ( chooseCities и destCities ) для выбора исходных и целевых городов для рейса. В примере экземпляр инициализируется SrgsDocument с помощью chooseCities правила в качестве аргумента. В примере в консоль записывается содержимое коллекции Rules и имя корневого правила.

// Create a rule that contains a list of destination cities.  
SrgsRule destCities = new SrgsRule("Destination");  
SrgsOneOf toCities = new SrgsOneOf(new string[] { "New York", "Seattle", "Denver" });  
destCities.Add(toCities);  

// Create a list of origin cities and supporting phrases.  
SrgsOneOf fromCities = new SrgsOneOf(new SrgsItem[] {   
  new SrgsItem("Dallas"), new SrgsItem("Miami"), new SrgsItem("Chicago") });  
SrgsItem intro = new SrgsItem("I want to fly from");  
SrgsItem to = new SrgsItem("to");  

// Create the root rule of the grammar, and assemble the components.  
SrgsRule chooseCities = new SrgsRule("Trip");  
chooseCities.Add(intro);  
chooseCities.Add(fromCities);  
chooseCities.Add(to);  
chooseCities.Add(new SrgsRuleRef(destCities));  

// Create the SrgsDocument and specify the root rule to add.  
SrgsDocument bookFlight = new SrgsDocument(chooseCities);  

// Add the rule for the destination cities to the document's rule collection.  
bookFlight.Rules.Add(new SrgsRule[] { destCities });  

// Display the contents of the Rules collection and the name of the root rule.  
foreach (SrgsRule rule in bookFlight.Rules)  
{  
  Console.WriteLine("Rule " + rule.Id + " is in the rules collection");  
}  
Console.WriteLine("Root Rule " + bookFlight.Root.Id);  

// Create a Grammar object and load it to the recognizer.  
Grammar g = new Grammar(bookFlight);  
g.Name = ("City Chooser");  
recognizer.LoadGrammarAsync(g);  

Комментарии

Этот конструктор добавляет указанное правило к SrgsRulesCollection SrgsDocument объекту и задает его в качестве Root правила для грамматики.

Применяется к

SrgsDocument(String)

Инициализирует новый экземпляр класса SrgsDocument, указывающий местоположение XML-документа, который используется для заполнения экземпляра SrgsDocument.

public:
 SrgsDocument(System::String ^ path);
public SrgsDocument (string path);
new System.Speech.Recognition.SrgsGrammar.SrgsDocument : string -> System.Speech.Recognition.SrgsGrammar.SrgsDocument
Public Sub New (path As String)

Параметры

path
String

Расположение XML-файла SRGS.

Исключения

path имеет значение null.

Параметр path равен пустой строке.

Примеры

В следующем примере создается новый объект SrgsDocument из файла с именем "srgsDocumentFile.xml".

string srgsDocumentFile = Path.Combine(Path.GetTempPath(), "srgsDocumentFile.xml");  
SrgsDocument document = null;  

if (File.Exists(srgsDocumentFile))  
   document = new SrgsDocument(srgsDocumentFile);  

Применяется к

SrgsDocument(XmlReader)

Инициализирует новый экземпляр класса SrgsDocument из экземпляра XmlReader, который ссылается на файл грамматики XML-формата.

public:
 SrgsDocument(System::Xml::XmlReader ^ srgsGrammar);
public SrgsDocument (System.Xml.XmlReader srgsGrammar);
new System.Speech.Recognition.SrgsGrammar.SrgsDocument : System.Xml.XmlReader -> System.Speech.Recognition.SrgsGrammar.SrgsDocument
Public Sub New (srgsGrammar As XmlReader)

Параметры

srgsGrammar
XmlReader

Объект XmlReader, созданный с экземпляром XML SrgsDocument.

Исключения

srgsGrammar имеет значение null.

Примеры

В следующем примере создается новый экземпляр SrgsDocument из экземпляра XmlReader , который ссылается на файл "srgsDocumentFile.xml".

string srgsDocumentFile = Path.Combine(Path.GetTempPath(), "srgsDocumentFile.xml");  
SrgsDocument document = null;  

if (File.Exists(srgsDocumentFile))  
{  
  XmlReader reader = XmlReader.Create(srgsDocumentFile);  
  document = new SrgsDocument(reader);  
  reader.Close();  
}  

Применяется к