Esempio n. 1
0
        public List <Structure> Read(IXPathNavigable navigable)
        {
            XPathNavigator navigator = navigable.CreateNavigator();

            ns = FhirNamespaceManager.CreateManager(navigator);
            return(ReadProfile(navigator));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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)));
        }
Esempio n. 6
0
        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;
     }
 }
Esempio n. 8
0
        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));
        }
Esempio n. 9
0
        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 { }
        }
Esempio n. 10
0
        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);
        }