Freigeben über


SrgsDocument.WriteSrgs(XmlWriter) Methode

Definition

Schreibt den Inhalt des SrgsDocument-Objekts in eine Grammatikdatei im XML-Format, die der Spracherkennungs-Grammatik-Spezifikation (SRGS), Version 1.0 entspricht.

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)

Parameter

srgsGrammar
XmlWriter

Der XmlWriter, der zum Schreiben der SrgsDocument-Instanz verwendet wird.

Ausnahmen

srgsGrammar ist null.

Beispiele

Im folgenden Beispiel wird ein SrgsDocument -Objekt erstellt, und anschließend wird eine öffentliche Regel mit dem Namen erstellt winnerRule . Anschließend wird ein erstellt SrgsItem , der aus der Zeichenfolge "A Nation, die den World Cup hat:", und dieses Element wird der- Elements Eigenschaft der Regel hinzugefügt. Im Beispiel werden dann zwei weitere Regeln ( ruleEurope und ruleSAmerica ) erstellt, bei denen es sich um ein Objekt handelt, SrgsOneOf das drei- SrgsItem Objekte enthält. Danach wird ein anderes SrgsOneOf Objekt erstellt, das SrgsRuleRef -Objekte enthält, die auf ruleEurope und verweisen ruleSAmerica . Das neue- SrgsOneOf Objekt wird dann der- Elements Eigenschaft von hinzugefügt winnerRule . Anschließend werden alle drei Regeln ( winnerRule , ruleEurope und ruleSAmerica ) der-Eigenschaft des hinzugefügt Rules SrgsDocument . Schließlich erstellt das Beispiel eine leere XML-Datei und eine Instanz von XmlWriter . Die- WriteSrgs Methode verwendet die- XmlWriter Instanz, um den Inhalt der SrgsDocument in die XML-Datei zu schreiben.

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

Gilt für