## net.sf.saxon.functions
Class DocumentFn

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.expr.FunctionCall
              net.sf.saxon.functions.SystemFunction
                  net.sf.saxon.functions.DocumentFn

All Implemented Interfaces:
  Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, Locator

    public class DocumentFn

extends SystemFunction

Implements the XSLT document() function

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.functions.SystemFunction
`operation`

Fields inherited from class net.sf.saxon.expr.FunctionCall
`argument`

Fields inherited from class net.sf.saxon.expr.Expression
`EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, PUSH_SELECTION, staticProperties, WATCH_METHOD`

Constructor Summary
`DocumentFn()`

Method Summary
`PathMap.PathMapNodeSet` `addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)` Add a representation of this expression to a PathMap.
`void` `checkArguments(ExpressionVisitor visitor)` Method called during static type checking
`int` `computeCardinality()` Determine the static cardinality
`static DocumentURI` `computeDocumentKey(String href, String baseURI, URIResolver resolver)` Compute a document key (an absolute URI that can be used to see if a document is already loaded)
`protected static DocumentURI` `computeDocumentKey(String href, String baseURI, XPathContext c)` Compute a document key
`int` `computeSpecialProperties()` Get the static properties of this expression (other than its type).
`Expression` `copy()` Copy an expression.
`String` `getStaticBaseURI()` Get the base URI from the static context
`SequenceIterator` `iterate(XPathContext context)` iterate() handles evaluation of the function: it returns a sequence of Document nodes
`static NodeInfo` `makeDoc(String href, String baseURI, XPathContext c, SourceLocator locator)` Supporting routine to load one external document given a URI (href) and a baseURI.
`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.
`static NodeInfo` `preLoadDoc(String href, String baseURI, Configuration config, SourceLocator locator)` Supporting routine to load one external document given a URI (href) and a baseURI.
`static Source` `resolveURI(String href, String baseURI, String documentKey, Controller controller)` Call the URIResolver to resolve a URI
`static void` `sendDoc(String href, String baseURL, XPathContext c, SourceLocator locator, Receiver out)` Supporting routine to push one external document given a URI (href) and a baseURI to a given Receiver.
`void` `sendDocuments(XPathContext context, Receiver out)` Copy the documents identified by this expression to a given Receiver.

Methods inherited from class net.sf.saxon.functions.SystemFunction
`addContextDocumentArgument, addDocToPathMap, getDetails, getErrorCodeForTypeErrors, getImplementationMethod, getItemType, getRequiredType, makeSystemFunction, optimize, setDetails, useContextItemAsDefault`

Methods inherited from class net.sf.saxon.expr.FunctionCall
`addExternalFunctionCallToPathMap, checkArgumentCount, equals, explain, getArguments, getDisplayName, getExpressionName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck`

Methods inherited from class net.sf.saxon.expr.Expression

`adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getHostLanguage, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### DocumentFn

    public DocumentFn()

Method Detail

### checkArguments

    public void checkArguments(ExpressionVisitor visitor)
                        throws XPathException

  Method called during static type checking

  Overrides:
    `checkArguments` in class `SystemFunction`
  Parameters:
    `visitor` - the expression visitor
  Throws:
    `XPathException`

### computeCardinality

    public int computeCardinality()

  Determine the static cardinality

  Overrides:
    `computeCardinality` in class `SystemFunction`
  Returns:
    the computed cardinality, as one of the values `StaticProperty.ALLOWS_ZERO_OR_ONE`, `StaticProperty.EXACTLY_ONE`, `StaticProperty.ALLOWS_ONE_OR_MORE`, `StaticProperty.ALLOWS_ZERO_OR_MORE`

### getStaticBaseURI

    public 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

### iterate

    public SequenceIterator iterate(XPathContext context)
                             throws XPathException

  iterate() handles evaluation of the function: it returns a sequence of Document nodes

  Specified by:
    `iterate` in interface `SequenceIterable`
  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

### makeDoc

    public static NodeInfo makeDoc(String href,
                                   String baseURI,
                                   XPathContext c,
                                   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 Source resolveURI(String href,
                                    String baseURI,
                                    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

    protected static DocumentURI computeDocumentKey(String href,
                                                    String baseURI,
                                                    XPathContext c)
                                             throws XPathException

  Compute a document key

  Throws:
    `XPathException`

### computeDocumentKey

    public static DocumentURI computeDocumentKey(String href,
                                                 String baseURI,
                                                 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(String href,
                                      String baseURI,
                                      Configuration config,
                                      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(String href,
                               String baseURL,
                               XPathContext c,
                               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`

Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.