Class DocumentFn

    • Constructor Detail

      • DocumentFn

        public DocumentFn()
    • Method Detail

      • getStaticBaseURI

        public java.lang.String getStaticBaseURI()
        Get the base URI from the static context
        Returns:
        the base URI
      • computeSpecialProperties

        public int computeSpecialProperties()
        Get the static properties of this expression (other than its type). The result is bit-signficant. These properties are used for optimizations. In general, if property bit is set, it is true, but if it is unset, the value is unknown.
        Overrides:
        computeSpecialProperties in class SystemFunction
        Returns:
        the special properties, as a bit-significant integer
      • preEvaluate

        public Expression preEvaluate​(ExpressionVisitor visitor)
        preEvaluate: the document() function can be evaluated at compile time if (a) the argument is a string literal, and (b) the option FeatureKeys.PRE_EVALUATE_DOC_FUNCTION is set.
        Overrides:
        preEvaluate in class FunctionCall
        Parameters:
        visitor - an expression visitor
        Returns:
        the result of the early evaluation, or the original expression, or potentially a simplified expression
      • addToPathMap

        public PathMap.PathMapNodeSet addToPathMap​(PathMap pathMap,
                                                   PathMap.PathMapNodeSet pathMapNodeSet)
        Add a representation of this expression to a PathMap. The PathMap captures a map of the nodes visited by an expression in a source tree.
        Overrides:
        addToPathMap in class Expression
        Parameters:
        pathMap - the PathMap to which the expression should be added
        pathMapNodeSet - the set of nodes in the path map that are affected
        Returns:
        the pathMapNode representing the focus established by this expression, in the case where this expression is the first operand of a path expression or filter expression
      • copy

        public Expression copy()
        Copy an expression. This makes a deep copy.
        Overrides:
        copy in class SystemFunction
        Returns:
        the copy of the original expression
      • equals

        public boolean equals​(java.lang.Object o)
        Determine whether two expressions are equivalent
        Overrides:
        equals in class SystemFunction
      • iterate

        public SequenceIterator iterate​(XPathContext context)
                                 throws XPathException
        iterate() handles evaluation of the function: it returns a sequence of Document nodes
        Overrides:
        iterate in class Expression
        Parameters:
        context - supplies the context for evaluation
        Returns:
        a SequenceIterator that can be used to iterate over the result of the expression
        Throws:
        XPathException - if any dynamic error occurs evaluating the expression
      • call

        public SequenceIterator call​(SequenceIterator[] arguments,
                                     XPathContext context)
                              throws XPathException
        Evaluate the expression
        Specified by:
        call in interface CallableExpression
        Parameters:
        arguments - the values of the arguments, supplied as SequenceIterators
        context - the dynamic evaluation context
        Returns:
        the result of the evaluation, in the form of a SequenceIterator
        Throws:
        XPathException - if a dynamic error occurs during the evaluation of the expression
      • makeDoc

        public static NodeInfo makeDoc​(java.lang.String href,
                                       java.lang.String baseURI,
                                       XPathContext c,
                                       javax.xml.transform.SourceLocator locator)
                                throws XPathException
        Supporting routine to load one external document given a URI (href) and a baseURI. This is used in the normal case when a document is loaded at run-time (that is, when a Controller is available)
        Parameters:
        href - the relative URI
        baseURI - the base URI
        c - the dynamic XPath context
        locator - used to identify the location of the instruction in event of error
        Returns:
        the root of the constructed document, or the selected element within the document if a fragment identifier was supplied
        Throws:
        XPathException
      • resolveURI

        public static javax.xml.transform.Source resolveURI​(java.lang.String href,
                                                            java.lang.String baseURI,
                                                            java.lang.String documentKey,
                                                            Controller controller)
                                                     throws XPathException
        Call the URIResolver to resolve a URI
        Parameters:
        href - the supplied relative URI, stripped of any fragment identifier
        baseURI - the base URI
        documentKey - the absolute URI if already available, or null otherwise
        controller - the Saxon controller
        Returns:
        a Source representing the document to be read
        Throws:
        XPathException
      • computeDocumentKey

        public static DocumentURI computeDocumentKey​(java.lang.String href,
                                                     java.lang.String baseURI,
                                                     javax.xml.transform.URIResolver resolver)
                                              throws XPathException
        Compute a document key (an absolute URI that can be used to see if a document is already loaded)
        Parameters:
        href - the relative URI
        baseURI - the base URI
        resolver - the URIResolver
        Throws:
        XPathException
      • preLoadDoc

        public static NodeInfo preLoadDoc​(java.lang.String href,
                                          java.lang.String baseURI,
                                          Configuration config,
                                          javax.xml.transform.SourceLocator locator)
                                   throws XPathException
        Supporting routine to load one external document given a URI (href) and a baseURI. This is used when the document is pre-loaded at compile time.
        Parameters:
        href - the relative URI. This must not contain a fragment identifier
        baseURI - the base URI
        config - the Saxon configuration
        locator - used to identify the location of the instruction in event of error. May be null.
        Returns:
        the root of the constructed document, or the selected element within the document if a fragment identifier was supplied
        Throws:
        XPathException
      • sendDocuments

        public void sendDocuments​(XPathContext context,
                                  Receiver out)
                           throws XPathException
        Copy the documents identified by this expression to a given Receiver. This method is used only when it is known that the documents are being copied, because there is then no problem about node identity.
        Parameters:
        context - the XPath dynamic context
        out - the destination to which the documents will be sent
        Throws:
        XPathException
      • sendDoc

        public static void sendDoc​(java.lang.String href,
                                   java.lang.String baseURL,
                                   XPathContext c,
                                   javax.xml.transform.SourceLocator locator,
                                   Receiver out)
                            throws XPathException
        Supporting routine to push one external document given a URI (href) and a baseURI to a given Receiver. This method cannot handle fragment identifiers
        Parameters:
        href - the relative URI
        baseURL - the base URI
        c - the XPath dynamic context
        locator - used to identify the lcoation of the instruction in case of error
        out - the destination where the document is to be sent
        Throws:
        XPathException