예제 #1
0
        private void Init(XPathDocument xpDoc, FileAccess mode, bool strict, params string[] pageNames)
        {
            if (mode != FileAccess.Read)
            {
                throw new IOException(mode.ToString() + " not supported");
            }

            var xslArgs = new XsltArgumentList();

            if (pageNames.Length > 0)
            {
                var pageNameList = pageNames.Aggregate("|", (current, pageName) => current + (pageName + "|"));
                xslArgs.AddParam("selected-pages", String.Empty, pageNameList);
            }

            xslArgs.AddParam("strict", String.Empty, strict?"true":"false");
            var xslt = Xml.GetCachedCompiledTransform("visio2003toRuleML.xsl");

            var stream = new MemoryStream();

            xslt.Transform(xpDoc, xslArgs, stream);
            stream.Seek(0, SeekOrigin.Begin);

            ruleBaseAdapter = new RuleML09NafDatalogAdapter(stream, FileAccess.Read);
        }
예제 #2
0
 public void Init()
 {
     m_GedcomAdapter    = new RuleML09NafDatalogAdapter(ruleFilesFolder + "gedcom-relations-0_9.ruleml", FileAccess.Read);
     m_TestUnitAdapter  = new RuleML09NafDatalogAdapter(ruleFilesFolder + "test-0_9.ruleml", FileAccess.Read);
     m_CompositeAdapter = new CompositeRuleBaseAdapter("TestCompositeAdapter", "forward",
                                                       m_GedcomAdapter,
                                                       m_TestUnitAdapter);
 }
예제 #3
0
 public void Init()
 {
     m_GedcomAdapter = new RuleML09NafDatalogAdapter(ruleFilesFolder + "gedcom-relations-0_9.ruleml", FileAccess.Read);
     m_TestUnitAdapter = new RuleML09NafDatalogAdapter(ruleFilesFolder + "test-0_9.ruleml", FileAccess.Read);
     m_CompositeAdapter = new CompositeRuleBaseAdapter("TestCompositeAdapter", "forward",
                                                     m_GedcomAdapter,
                                                     m_TestUnitAdapter);
 }
예제 #4
0
        /// <summary>
        /// Get a specific list type from an adapter.
        /// </summary>
        /// <typeparam name="T">Type of the list to return</typeparam>
        /// <param name="adapter">adapter to return the list from</param>
        /// <param name="listType"></param>
        /// <returns></returns>
        private IList <T> GetAdaptersList <T>(IRuleBaseAdapter adapter, AdapterListType listType)
        {
            switch (listType)
            {
            case AdapterListType.Fact:
                return((IList <T>)adapter.Facts);

            case AdapterListType.Implication:
                return((IList <T>)adapter.Implications);

            case AdapterListType.Query:
                return((IList <T>)adapter.Queries);
            }

            IExtendedRuleBaseAdapter extendedAdapter = adapter as IExtendedRuleBaseAdapter;

            if (adapter != null)
            {
                switch (listType)
                {
                case AdapterListType.Retraction:
                    return((IList <T>)extendedAdapter.Retractions);

                case AdapterListType.IntegrityQuery:
                    return((IList <T>)extendedAdapter.IntegrityQueries);

                case AdapterListType.Equivalent:
                    return((IList <T>)extendedAdapter.Equivalents);

                case AdapterListType.Assertion:
                    return((IList <T>)extendedAdapter.Assertions);
                }
            }

            return(new List <T>(0));
        }
예제 #5
0
        private void Init(XPathDocument xpDoc, FileAccess mode, bool strict, params string[] pageNames)
        {
            if (mode != FileAccess.Read) throw new IOException(mode.ToString() + " not supported");

            XsltArgumentList xslArgs = new XsltArgumentList();

            if (pageNames.Length > 0) {
                string pageNameList = "|";
                foreach(string pageName in pageNames) pageNameList += (pageName + "|");
                xslArgs.AddParam("selected-pages", String.Empty, pageNameList);
            }

            xslArgs.AddParam("strict", String.Empty, strict?"true":"false");
            XslCompiledTransform xslt = Xml.GetCachedCompiledTransform("visio2003toRuleML.xsl");

            MemoryStream stream = new MemoryStream();
            xslt.Transform(xpDoc, xslArgs, stream);
            stream.Seek(0, SeekOrigin.Begin);

            ruleBaseAdapter = new RuleML09NafDatalogAdapter(stream, FileAccess.Read);
        }