public List <Structure> Read(IXPathNavigable navigable) { XPathNavigator navigator = navigable.CreateNavigator(); ns = FhirNamespaceManager.CreateManager(navigator); return(ReadProfile(navigator)); }
public Vector GetVector(XPathNavigator root) { XmlNamespaceManager nsm = FhirNamespaceManager.CreateManager(root); Structure structure = specification.GetStructureByName(root.Name); XPathNavigator node = root.CreateNavigator(); return(Vector.Create(structure, node, nsm)); }
public Vector GetVector(XPathNavigator root) { XmlNamespaceManager nsm = FhirNamespaceManager.CreateManager(root); Structure structure = Profile.GetStructureByName(root.Name); Vector vector = Vector.Create(structure, root, nsm); return(vector); }
public void TestLowercase() { var d = testDoc(); var mgr = FhirNamespaceManager.CreateManager(d); var expr = d.Compile("lower-case('Hoi!')"); expr.SetContext(mgr); Assert.AreEqual("hoi!", d.Evaluate(expr)); }
public void TestDistinct() { var d = testDoc(); var mgr = FhirNamespaceManager.CreateManager(d); var p = d.SelectSingleNode("/f:parent", mgr); var expr = p.Compile("count(distinct-values(f:child/@val))"); expr.SetContext(mgr); Assert.AreEqual(2, Convert.ToInt32(p.Evaluate(expr))); }
public List <Structure> ReadProfiles(IXPathNavigable root) { XPathNavigator navigator = root.CreateNavigator(); ns = FhirNamespaceManager.CreateManager(navigator); List <Structure> structures = new List <Structure>(); foreach (XPathNavigator node in navigator.Select("//f:Profile", ns)) { structures.AddRange(ReadStructures(node)); } return(structures); }
public static void Compile(Constraint constraint) { try { constraint.Compiled = true; var expr = XPathExpression.Compile(constraint.XPath); expr.SetContext(FhirNamespaceManager.CreateManager()); constraint.Expression = expr; constraint.IsValid = true; } catch (Exception e) { constraint.CompilerError = e; constraint.IsValid = false; } }
public void TestExists() { var d = testDoc(); var mgr = FhirNamespaceManager.CreateManager(d); Assert.AreEqual(3, d.Select("/f:parent/f:child", mgr).Count); var p = d.SelectSingleNode("/f:parent", mgr); var expr = p.Compile("exists(f:child)"); expr.SetContext(mgr); Assert.IsTrue((bool)p.Evaluate(expr)); expr = p.Compile("not(exists(f:childX))"); expr.SetContext(mgr); Assert.IsTrue((bool)p.Evaluate(expr)); }
public void TestSyntaxError() { var d = testDoc(); var mgr = FhirNamespaceManager.CreateManager(d); var p = d.SelectSingleNode("/f:parent", mgr); try { var expr = p.Compile("not(descendant-or-self::*/@*[not(name(.)=('abbr','accesskey', 'align', 'alt', 'axis'))])"); expr.SetContext(mgr); p.Evaluate(expr); Assert.Fail(); } catch { } }
public List <ValueSet> ReadValueSets(IXPathNavigable navigable) { List <ValueSet> valuesets = new List <ValueSet>(); XPathNavigator navigator = navigable.CreateNavigator(); ns = FhirNamespaceManager.CreateManager(navigator); foreach (XPathNavigator node in navigator.Select("atom:feed/atom:entry/atom:content/f:ValueSet", ns)) { ValueSet set = ReadValueSet(node); if (set != null) { valuesets.Add(set); } } return(valuesets); }