Class DocumentBuilder
Class DomDestination
Class DynamicContext
Class DynamicError
Class EmptyEnumerator
Class ExtensionFunctionCall
Class NullDestination
Class Processor
Class QName
Class SchemaManager
Class SchemaValidator
Class Serializer
Class StaticContext
Class StaticError
Class TextWriterDestination
Class XPathCompiler
Class XPathExecutable
Class XPathSelector
Class XQueryCompiler
Class XQueryEvaluator
Class XQueryExecutable
Class XdmAnyFunctionType
Class XdmAnyItemType
Class XdmAnyNodeType
Class XdmAtomicType
Class XdmAtomicValue
Class XdmDestination
Class XdmEmptySequence
Class XdmItem
Class XdmItemType
Class XdmNode
Class XdmNodeKind
Class XdmSequenceType
Class XdmValue
Class XmlDestination
Class XsltCompiler
Class XsltExecutable
Class XsltTransformer
Enum RecoveryPolicy
Enum SchemaValidationMode
Enum TreeModel
Enum WhitespacePolicy
Enum XdmAxis
Interface IMessageListener
Interface IQueryResolver
Interface IResultDocumentHandler
Interface IXdmEnumerator
Interface IXmlLocation
Interface SchemaResolver
public abstract class ExtensionFunctionCall
An instance of this class will be created by the compiler for each function call to this extension function
that is found in the source code. The class is always instantiated by calling the method MakeFunctionCall()
of the corresponding ExtensionFunctionDefinition
.
The implementation may therefore retain information about the static context of the
call. Once compiled, however, the instance object must be immutable.
Method Summary | |
---|---|
void |
SupplyStaticContext(StaticContext context) Method called by the compiler (at compile time) to provide information about the static context of the function call. The implementation may retain this information for use at run-time, if the result of the function depends on information in the static context. |
void |
CopyLocalData(ExtensionFunctionCall destination)
A subclass must implement this method if it retains any local data at the instance level. On some occasions
(for example, when XSLT or XQuery code is inlined), Saxon will make a copy of an |
IXdmEnumerator |
Call(Saxon.Api.IXdmEnumerator[] arguments, DynamicContext context) Method called at run time to evaluate the function. |
Method Detail |
---|
public virtual void SupplyStaticContext(StaticContext context)
Method called by the compiler (at compile time) to provide information about the static context of the function call. The implementation may retain this information for use at run-time, if the result of the function depends on information in the static context.
For efficiency, the implementation should only retain copies of the information that it actually needs. It is not a good idea to hold a reference to the static context itself, since that can result in a great deal of compile-time information being locked into memory during run-time execution.
Parameters:context
-
public virtual void CopyLocalData(ExtensionFunctionCall destination)
A subclass must implement this method if it retains any local data at the instance level. On some occasions
(for example, when XSLT or XQuery code is inlined), Saxon will make a copy of an ExtensionFunction
object.
It will then call this method on the old object, supplying the new object as the value of the argument, and the
method must copy all local data items from the old object to the new.
destination
-
public abstract IXdmEnumerator Call(Saxon.Api.IXdmEnumerator[] arguments, DynamicContext context)
Method called at run time to evaluate the function.
Parameters:arguments
-
context
-
last()
is
used) Saxon may clone the returned iterator by calling its GetAnother()
method,
allowing the function results to be read more than once.