コード例 #1
0
        public override JSequence call(JXPathContext context, JSequence [] argument)
        {
            SequenceEnumerator <XdmItem>[] na = new SequenceEnumerator <XdmItem> [argument.Length];
            for (int i = 0; i < na.Length; i++)
            {
                na[i] = new SequenceEnumerator <XdmItem>((JXdmSequenceIterator)XdmValue.FromGroundedValueToJXdmValue(argument[i].materialize()).iterator());
            }
            DynamicContext        dc     = new DynamicContext(context);
            IEnumerator <XdmItem> result = functionCall.Call(na, dc);

            return(new net.sf.saxon.om.LazySequence(new net.sf.saxon.om.IteratorWrapper(new net.sf.saxon.dotnet.DotNetIterator(result, new Mapper()))));
        }
コード例 #2
0
ファイル: Extensibility.cs プロジェクト: orbeon/saxon-he
        public override JSequenceIterator call(JSequenceIterator[] arguments, JXPathContext context)
        {
            SequenceEnumerator[] na = new SequenceEnumerator[arguments.Length];
            for (int i = 0; i < na.Length; i++)
            {
                na[i] = new SequenceEnumerator(arguments[i]);
            }
            DynamicContext dc     = new DynamicContext(context);
            IXdmEnumerator result = functionCall.Call(na, dc);

            return(new DotNetSequenceIterator(result));
        }
コード例 #3
0
        public override JSequence call(JXPathContext context, JSequence [] argument)
        {
            SequenceEnumerator[] na = new SequenceEnumerator[argument.Length];
            for (int i = 0; i < na.Length; i++)
            {
                na[i] = new SequenceEnumerator(argument[i].iterate());
            }
            DynamicContext dc     = new DynamicContext(context);
            IXdmEnumerator result = functionCall.Call(na, dc);

            return(new net.sf.saxon.om.LazySequence(new DotNetSequenceIterator(result)));
        }
コード例 #4
0
        public Iterator getResourceURIs(JXPathContext xpc)
        {
            java.util.List iter = new java.util.ArrayList();
            if (resourceCollection != null)
            {
                List <string> list = resourceCollection.GetResourceURIs(new DynamicContext(xpc));
                foreach (string src in list)
                {
                    iter.add(src);
                }
            }

            return(iter.iterator());
        }
コード例 #5
0
ファイル: SampleExtensions.cs プロジェクト: orbeon/saxon-he
        /// <summary>
        /// Get the current host language from the Saxon context
        /// </summary>

        public static string hostLanguage(net.sf.saxon.expr.XPathContext context)
        {
            int lang = context.getController().getExecutable().getHostLanguage();

            if (lang == net.sf.saxon.Configuration.XQUERY)
            {
                return("XQuery");
            }
            else if (lang == net.sf.saxon.Configuration.XSLT)
            {
                return("XSLT");
            }
            else if (lang == net.sf.saxon.Configuration.XPATH)
            {
                return("XPath");
            }
            else
            {
                return("unknown");
            }
        }
コード例 #6
0
        public JResourceCollection findCollection(JXPathContext xpc, string str)
        {
            IResourceCollection rcollection = collectionFinder.FindCollection(new DynamicContext(xpc), str);

            return(new ResourceCollectionWrapper(rcollection));
        }
コード例 #7
0
 public JItem getItem(JXPathContext xpc)
 {
     return((JItem)resource.GetXdmItem(new DynamicContext(xpc)).Unwrap());
 }
コード例 #8
0
 public bool isStable(JXPathContext xpc)
 {
     return(false);
 }
コード例 #9
0
 internal DynamicContext(JXPathContext context)
 {
     this.context = context;
 }
コード例 #10
0
ファイル: Extensibility.cs プロジェクト: nuxleus/saxonica
 public override JSequenceIterator call(JSequenceIterator[] arguments, JXPathContext context)
 {
     SequenceEnumerator[] na = new SequenceEnumerator[arguments.Length];
     for (int i = 0; i < na.Length; i++)
     {
         na[i] = new SequenceEnumerator(arguments[i]);
     }
     DynamicContext dc = new DynamicContext(context);
     IXdmEnumerator result = functionCall.Call(na, dc);
     return new DotNetSequenceIterator(result);
 }
コード例 #11
0
ファイル: Extensibility.cs プロジェクト: nuxleus/saxonica
 internal DynamicContext(JXPathContext context)
 {
     this.context = context;
 }
コード例 #12
0
ファイル: Environment.cs プロジェクト: orbeon/saxon-he
            public net.sf.saxon.om.SequenceIterator resolve(string href, string baseStr, net.sf.saxon.expr.XPathContext context)
            {
                try {
                    List <Uri> docs;
                    if (href == null)
                    {
                        docs = (List <Uri>)collections[new Uri("http://www.saxonica.com/defaultCollection")];
                    }
                    else
                    {
                        XmlUrlResolver res = new XmlUrlResolver();
                        Uri            abs = res.ResolveUri(new Uri(baseStr), href);
                        try
                        {
                            docs = (List <Uri>)collections[abs];
                        }
                        catch (Exception) {
                            docs = null;
                        }
                    }
                    if (docs == null)
                    {
                        return(net.sf.saxon.tree.iter.EmptyIterator.getInstance());
                    }
                    else
                    {
                        java.util.List list = new java.util.ArrayList();
                        foreach (Uri uri in docs)
                        {
                            list.add(new net.sf.saxon.value.AnyURIValue(uri.ToString()));
                        }

                        return(new net.sf.saxon.tree.iter.ListIterator(list));
                    }
                } catch (java.net.URISyntaxException e) {
                    System.Console.WriteLine("** Invalid Uri: " + e.Message);
                    return(net.sf.saxon.tree.iter.EmptyIterator.getInstance());
                }
            }