Class UnparsedText

All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, CallableExpression, InstructionInfo, Locator
Direct Known Subclasses:
UnparsedTextAvailable, UnparsedTextLines

public class UnparsedText extends SystemFunction implements CallableExpression
See Also:
  • Field Details

    • expressionBaseURI

      String expressionBaseURI
  • Constructor Details

    • UnparsedText

      public UnparsedText()
  • Method Details

    • checkArguments

      public void checkArguments(ExpressionVisitor visitor) throws XPathException
      Description copied from class: SystemFunction
      Method called during static type checking
      Overrides:
      checkArguments in class SystemFunction
      Parameters:
      visitor - the expression visitor
      Throws:
      XPathException - if the arguments are incorrect
    • getExpressionBaseURI

      public String getExpressionBaseURI()
      getExpressionBaseURI: this method returns the expression base URI
    • preEvaluate

      public Expression preEvaluate(ExpressionVisitor visitor)
      preEvaluate: this method suppresses compile-time evaluation by doing nothing
      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
    • computeSpecialProperties

      public int computeSpecialProperties()
      Description copied from class: SystemFunction
      Determine the special properties of this expression. The general rule is that a system function call is non-creative if its return type is atomic, or if all its arguments are non-creative. This is overridden for the generate-id() function, which is considered creative if its operand is creative (because the result depends on the identity of the operand)
      Overrides:
      computeSpecialProperties in class SystemFunction
      Returns:
      the special properties, as a bit-significant integer
    • evaluateItem

      public Item evaluateItem(XPathContext context) throws XPathException
      This method handles evaluation of the function: it returns a StringValue in the case of unparsed-text(), or a BooleanValue in the case of unparsed-text-available(). In the case of unparsed-text-lines() this shouldn't be called, but we deal with it anyway.
      Overrides:
      evaluateItem in class Expression
      Parameters:
      context - The context in which the expression is to be evaluated
      Returns:
      the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
      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
    • evalUnparsedText

      public Item evalUnparsedText(StringValue hrefVal, String encoding, XPathContext context) throws XPathException
      Throws:
      XPathException
    • readFile

      public CharSequence readFile(String href, String baseURI, String encoding, XPathContext context) throws XPathException
      Supporting routine to load one external file given a URI (href) and a baseURI
      Throws:
      XPathException
    • getAbsoluteURI

      public static URI getAbsoluteURI(String href, String baseURI) throws XPathException
      Throws:
      XPathException
    • handleIOError

      public static XPathException handleIOError(URI absoluteURI, IOException ioErr)
    • readFile

      public static CharSequence readFile(NameChecker checker, Reader reader) throws IOException, XPathException
      Read the contents of an unparsed text file
      Parameters:
      checker - NameChecker for checking whether characters are valid XML characters
      reader - Reader to be used for reading the file
      Returns:
      a CharSequence representing the contents of the file
      Throws:
      IOException - if a failure occurs reading the file
      XPathException - if the file contains illegal characters
    • main

      public static void main(String[] args) throws Exception
      Throws:
      Exception