SrgsDocument.WriteSrgs(XmlWriter) Метод

Определение

Записывает содержимое SrgsDocument объекта в файл грамматики формата XML, соответствующий спецификации грамматики распознавания речи (SRGS) версии 1.0.

public:
 void WriteSrgs(System::Xml::XmlWriter ^ srgsGrammar);
public void WriteSrgs(System.Xml.XmlWriter srgsGrammar);
member this.WriteSrgs : System.Xml.XmlWriter -> unit
Public Sub WriteSrgs (srgsGrammar As XmlWriter)

Параметры

srgsGrammar
XmlWriter

Используется XmlWriter для записи экземпляра SrgsDocument .

Исключения

srgsGrammar равно null.

Примеры

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

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;

  // Create a string object with the path to the file to use.
  string srgsDocumentFile = Path.Combine(Path.GetTempPath(), "srgsDocumentFile.xml");

  // Create an XmlWriter object and pass the file path.
  XmlWriter writer = XmlWriter.Create(srgsDocumentFile);

  // Write the contents of the XmlWriter object to an SRGS-compatible XML file.
  document.WriteSrgs(writer);
  writer.Close();
}

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