public void Matching() { XPathQueryLanguage query = new XPathQueryLanguage(); SchematronDocument a = Load("Schematron/Samples/All.sch"); Rule rule = FindRule(a, "foo"); XmlDocument doc; object matchContext; bool matches; doc = new XmlDocument(); doc.LoadXml("<foo>bar</foo>"); matchContext = query.CreateMatchContext(a, doc); XPathNavigator nav = doc.CreateNavigator(); nav.MoveToFirstChild(); matches = query.Match(rule, matchContext, nav); Assert.IsTrue(matches); doc = new XmlDocument(); doc.LoadXml("<document><a></a></document>"); matchContext = query.CreateMatchContext(a, doc); matches = query.Match(rule, matchContext, doc.CreateNavigator()); Assert.IsFalse(matches); }
public void Letting_Match() { XmlDocument doc = new XmlDocument(); doc.LoadXml("<foo/>"); XPathNavigator nav = doc.DocumentElement.CreateNavigator(); XPathQueryLanguage query = new XPathQueryLanguage(); Rule rule = new Rule(); rule.Context = " $ename "; object context = query.CreateMatchContext(null, doc); query.Let(context, "ename", "foo"); Assert.IsTrue(query.Match(rule, context, nav)); context = query.CreateMatchContext(null, doc); query.Let(context, "ename", "bar"); Assert.IsFalse(query.Match(rule, context, nav)); }