public static XmlNode Parse(string xml) { var parser = XmlGrammar.CreateParser(); var result = parser.Parse(xml); return(result.Success ? result.Value : null); }
public void TestXmlGrammarRuleNameForConfigManagerConstructor() { IConfigurationManager configManager = GetConfigurationManager(); XmlGrammar grammar = new XmlGrammar(configManager, unformattedFileName, GetType()); Assert.AreEqual("overallCommand", grammar.RuleName); }
public void CreateGrammarFromListSuccess() { List <String> testListValues = new List <String> { "Test Item One", "Test Item Two", "Test Item Three", }; XmlDocument doc = new XmlDocument(); doc.Load(formattedFileName); XmlGrammar baseGrammar = new XmlGrammar(doc); XmlGrammar grammar = GrammarUtility.CreateGrammarFromList(formattedFileName, "testList", testListValues); Assert.AreEqual(5, grammar.Rules.Count()); for (int i = 0; i < baseGrammar.Rules.Count() - 1; i++) { Assert.AreEqual(baseGrammar.Rules.ElementAt(i).InnerXml, grammar.Rules.ElementAt(i).InnerXml); } XmlElement elem = grammar.Rules.Last(); Assert.AreEqual("testList", elem.Attributes["id"].Value); XmlElement oneOfElem = elem.FirstChild as XmlElement; Assert.AreEqual(3, oneOfElem.ChildNodes.Count); Assert.AreEqual(testListValues[0], oneOfElem.ChildNodes[0].FirstChild.Value.Trim()); Assert.AreEqual(testListValues[1], oneOfElem.ChildNodes[1].FirstChild.Value.Trim()); Assert.AreEqual(testListValues[2], oneOfElem.ChildNodes[2].FirstChild.Value.Trim()); }
public override void Initialize(IConfigurationManager configManager) { base.Initialize(configManager); if (ConfigManager.FindAllComponentsOfType <ITVRemote>().Any()) { XmlGrammar grammar = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("RemoteGrammar.grxml", GetType()), "ChannelName", ConfigManager.FindAllComponentsOfType <ITVRemote>().SelectMany(r => r.GetChannels()).ToList()); Provider = new GrammarProvider(grammar); } }
public override void Initialize(IConfigurationManager configManager) { base.Initialize(configManager); if (ConfigManager.FindAllComponentsOfType <IPowerController>().Any()) { IEnumerable <String> locations = ConfigManager.FindAllComponentsOfType <IPowerController>().Select(s => s.Name); XmlGrammar grammar = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("PowerGrammar.grxml", GetType()), "SwitchName", locations.ToList()); Provider = new GrammarProvider(grammar); } }
public override void Initialize(IConfigurationManager configManager) { base.Initialize(configManager); if (IsValid) { List <String> podcastNames = Podcasts.Select(info => info.Name).ToList(); XmlGrammar grammar = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("PodcastGrammar.grxml", GetType()), "PodcastName", podcastNames); Provider = new GrammarProvider(grammar); } }
public void TestXmlGrammarRuleNameForDocumentConstructor() { IConfigurationManager configManager = GetConfigurationManager(); XmlDocument unformattedDoc = new XmlDocument(); unformattedDoc.Load(unformattedFileName); XmlGrammar grammar = new XmlGrammar(unformattedDoc); Assert.AreEqual("overallCommand", grammar.RuleName); }
public void TestXmlGrammarFormatForConfigManagerNameConstructor() { IConfigurationManager configManager = GetConfigurationManager(); XmlGrammar grammar = new XmlGrammar(configManager, "TestRuleName", unformattedFileName, GetType()); XmlDocument formattedDoc = new XmlDocument(); formattedDoc.Load(formattedFileName); Assert.AreEqual(formattedDoc.InnerXml, grammar.RootDocument.InnerXml); }
public void TestXmlGrammarFormatForDocumentNameConstructor() { XmlDocument unformattedDoc = new XmlDocument(); unformattedDoc.Load(unformattedFileName); XmlGrammar grammar = new XmlGrammar("TestRule", unformattedDoc); XmlDocument formattedDoc = new XmlDocument(); formattedDoc.Load(formattedFileName); Assert.AreEqual(formattedDoc.InnerXml, grammar.RootDocument.InnerXml); }
public override void Initialize(IConfigurationManager configManager) { base.Initialize(configManager); if (!Children.OfType <IOInterfaceReference>().Any()) { foreach (IVolumeController controller in ConfigManager.FindAllComponentsOfType <IVolumeController>()) { AddChild(new IOInterfaceReference("", controller.Name, ConfigManager)); } } IEnumerable <String> references = Children.OfType <IOInterfaceReference>().Select(s => s.Name); XmlGrammar grammar = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("VolumeGrammar.grxml", GetType()), "Source", references.ToList()); Provider = new GrammarProvider(grammar, new XmlGrammar(ConfigManager, VolumeGrammarName, "AdjustmentGrammar.grxml", GetType())); }
public override void Initialize(IConfigurationManager configManager) { base.Initialize(configManager); if (ConfigManager.FindAllComponentsOfType <IBartenderController>().Any() && AvailableDrinks.Any()) { List <String> drinkNames = AvailableDrinks.Select(d => d.Name).ToList(); XmlGrammar grammar = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("BartenderGrammar.grxml", GetType()), "DrinkName", drinkNames); Provider = new GrammarProvider(grammar, GrammarUtility.GetGenericTrueFalseGrammar(ConfirmationRuleName, CommandName, new List <String> { "o k" }, new List <String> { "cancel" })); } }
public void TestXmlGrammarRulesList() { IConfigurationManager configManager = GetConfigurationManager(); XmlDocument unformattedDoc = new XmlDocument(); unformattedDoc.Load(unformattedFileName); XmlGrammar grammar = new XmlGrammar(unformattedDoc); List <String> expectedRules = new List <string> { "overallCommand", "movieCommand", "MovieName", "TheaterName", }; Assert.AreEqual(expectedRules.Count, grammar.Rules.Count()); for (int i = 0; i < grammar.Rules.Count(); i++) { Assert.AreEqual("rule", grammar.Rules.ElementAt(i).LocalName); Assert.AreEqual(expectedRules[i], grammar.Rules.ElementAt(i).Attributes["id"].Value); } }
private RecognitionResult RunGrammarOnInput(String input, String grammarName, MockVoiceControl control, BaseSAMIApp app) { app.Initialize(GetConfigurationManager()); foreach (IParseable child in app.Children) { child.Initialize(GetConfigurationManager()); } // Create a SpeechRecognitionEngine object and add the grammars to it. RecognizerInfo ri = GetKinectRecognizer(); SpeechRecognitionEngine recoEngine = new SpeechRecognitionEngine(ri.Id); XmlGrammar grammar = control.GrammarProvider.MainGrammar; if (grammarName != null) { grammar = control.GrammarProvider.ExtraGrammars.Single(g => g.RuleName.Equals(grammarName)); } foreach (String fileName in _utilityFiles) { XmlDocument fileDoc = new XmlDocument(); fileDoc.Load(fileName); foreach (XmlElement element in fileDoc.LastChild.ChildNodes) { XmlNode copiedNode = grammar.RootDocument.ImportNode(element, true); grammar.RootDocument.LastChild.AppendChild(copiedNode); } } grammar.RootDocument.Save("grammar.xml"); recoEngine.LoadGrammar(new Grammar("grammar.xml")); // Simulate recognition and get result parameters RecognitionResult result = recoEngine.SimulateRecognize(input); return(result); }
public void TestAppGrammarDoesNotIncludeDuplicates() { IEnumerable <Showtime> _fakeShowtimes = new List <Showtime> { new Showtime("First Test Show", "First Test Theater", "9:45 PM"), new Showtime("First Test Show", "First Test Theater", "8:45 PM"), new Showtime("Third Test Show", "Second Test Theater", "10:45 PM"), new Showtime("Third Test Show", "Second Test Theater", "11:45 PM"), new Showtime("Third Test Show", "Second Test Theater", "7:45 PM"), new Showtime("Third Test Show", "Second Test Theater", "6:45 PM"), }; IConfigurationManager configManager = GetConfigurationManager(); Mock <IMovieSensor> db = new Mock <IMovieSensor>(MockBehavior.Strict); db.Setup(s => s.IsValid).Returns(true); db.Setup(s => s.GetMovieShowtimes(new SamiDateTime(DateTimeRange.AnyTime), null, null)).Returns(_fakeShowtimes); AddComponentToConfigurationManager(db.Object); MovieApp app = new MovieApp(); app.Initialize(GetConfigurationManager()); XmlGrammar grammar = app.GetMainGrammar(); XmlNode movieNameRule = grammar.RootDocument.LastChild.SelectSingleNode("rule[@id='MovieName']"); foreach (XmlElement elem in grammar.RootDocument.LastChild.ChildNodes.OfType <XmlElement>()) { if (elem.HasAttribute("id") && elem.Attributes["id"].Value.Equals("MovieName")) { Assert.AreEqual(2, elem.FirstChild.ChildNodes.Count); } } db.Verify(s => s.GetMovieShowtimes(new SamiDateTime(DateTimeRange.AnyTime), null, null), Times.Exactly(2)); }