Class XPathException

All Implemented Interfaces:
Serializable
Direct Known Subclasses:
CopyNamespaceSensitiveException, Error.UserDefinedXPathException, NoDynamicContextException, NoOpenStartTagException, QuitParsingException, SchemaException, TerminationException, ValidationException, XPathException.Circularity, XPathException.StackOverflow

public class XPathException extends TransformerException
XPathException is used to indicate an error (static or dynamic) in an XPath expression, or in a query or stylesheet.
See Also:
  • Constructor Details

    • XPathException

      public XPathException(String message)
      Create an XPathException with an error message
      Parameters:
      message - the message explaining what is wrong. This should not include location information.
    • XPathException

      public XPathException(Throwable err)
      Create an XPathException that wraps another exception
      Parameters:
      err - the wrapped error or exception
    • XPathException

      public XPathException(String message, Throwable err)
      Create an XPathException that supplies an error message and wraps an underlying exception
      Parameters:
      message - the error message (which should generally explain what Saxon was doing when the underlying exception occurred)
      err - the underlying exception (the cause of this exception)
    • XPathException

      public XPathException(String message, String errorCode, Location loc)
      Create an XPathException that supplies an error message and supplies location information
      Parameters:
      message - the error message
      loc - indicates where in the user-written query or stylesheet (or sometimes in a source document) the error occurred
    • XPathException

      public XPathException(String message, String errorCode)
      Create an XPathException that supplies an error message and an error code
      Parameters:
      message - the error message
      errorCode - the error code - an eight-character code, which is taken to be in the standard system error code namespace
    • XPathException

      public XPathException(String message, String errorCode, XPathContext context)
      Create an XPathException that supplies an error message and an error code and provides the dynamic context
      Parameters:
      message - the error message
      errorCode - the error code - an eight-character code, which is taken to be in the standard system error code namespace
      context - the dynamic evaluation context
  • Method Details

    • makeXPathException

      public static XPathException makeXPathException(Exception err)
      Create an XPathException from an exception of another kind. If the supplied Exception is an XPathException; if its cause is an XPathException, that XPathException is returned unchanged; otherwise the supplied Exception is wrapped.
      Parameters:
      err - the supplied Exception
      Returns:
      an XPathException obtained from the supplied TransformerException
    • fromXmlProcessingError

      public static XPathException fromXmlProcessingError(XmlProcessingError error)
    • withMessage

      public XPathException withMessage(String message)
      Construct an exception that differs from a supplied exception only by changing the error message
      Parameters:
      message - the new message
      Returns:
      a new exception, copying all the properties of this exception except for the message
    • setXPathContext

      public void setXPathContext(XPathContext context)
      Set dynamic context information in the exception object
      Parameters:
      context - the dynamic context at the time the exception occurred
    • withXPathContext

      public XPathException withXPathContext(XPathContext context)
      Set dynamic context information in the exception object
      Parameters:
      context - the dynamic context at the time the exception occurred
      Returns:
      this XPathException object in a modified state
    • setLocation

      public void setLocation(Location loc)
    • withLocation

      public XPathException withLocation(Location loc)
      Set location information in the exception object
      Parameters:
      loc - indicating where the exception occurred
      Returns:
      this XPathException object in a modified state
    • getFailingExpression

      public Expression getFailingExpression()
    • withFailingExpression

      public XPathException withFailingExpression(Expression failingExpression)
    • maybeWithFailingExpression

      public XPathException maybeWithFailingExpression(Expression failingExpression)
    • getLocator

      public Location getLocator()
      Method getLocator retrieves an instance of a SourceLocator object that specifies where an error occured.
      Overrides:
      getLocator in class TransformerException
      Returns:
      A SourceLocator object, or null if none was specified.
    • getXPathContext

      public XPathContext getXPathContext()
      Get the dynamic context at the time the exception occurred
      Returns:
      the dynamic context if known; otherwise null
    • setIsStaticError

      public void setIsStaticError(boolean is)
      Mark this exception to indicate that it represents (or does not represent) a static error
      Parameters:
      is - true if this exception is a static error
    • asStaticError

      public XPathException asStaticError()
    • isStaticError

      public boolean isStaticError()
      Ask whether this exception represents a static error
      Returns:
      true if this exception is a static error
    • setIsSyntaxError

      public void setIsSyntaxError(boolean is)
      Mark this exception to indicate that it represents (or does not represent) a syntax error
      Parameters:
      is - true if this exception is a syntax error
    • isSyntaxError

      public boolean isSyntaxError()
      Ask whether this exception represents a syntax error
      Returns:
      true if this exception is a syntax error
    • setIsTypeError

      public void setIsTypeError(boolean is)
      Mark this exception to indicate that it represents (or does not represent) a type error
      Parameters:
      is - true if this exception is a type error
    • asTypeError

      public XPathException asTypeError()
      Mark this exception to indicate that it represents a type error
      Returns:
      this XPathException in a modified state
    • asTypeErrorIf

      public XPathException asTypeErrorIf(boolean condition)
    • isTypeError

      public boolean isTypeError()
      Ask whether this exception represents a type error
      Returns:
      true if this exception is a type error
    • setIsGlobalError

      public void setIsGlobalError(boolean is)
      Mark this exception to indicate that it originated while evaluating a global variable reference, and is therefore to be reported regardless of the try/catch context surrounding the variable reference
      Parameters:
      is - true if this exception is a global variable error
    • isGlobalError

      public boolean isGlobalError()
      Ask whether this exception originated while evaluating a global variable reference, and is therefore to be reported regardless of the try/catch context surrounding the variable reference
      Returns:
      true if this exception is a global variable error
    • setHostLanguage

      public void setHostLanguage(String language)
      Set the host language code
      Parameters:
      language - a value such as "XPath", "XQuery", "XSLT Pattern"
    • setHostLanguage

      public void setHostLanguage(HostLanguage language)
      Set the host language code
      Parameters:
      language - a value such as "XPath", "XQuery", "XSLT Pattern"
    • getHostLanguage

      public String getHostLanguage()
      Get the host language code
      Returns:
      a value such as "XPath", "XQuery", "XSLT Pattern", or null
    • setErrorCode

      public void setErrorCode(String code)
      Set the error code. The error code is a QName; this method sets the local part of the name, setting the namespace of the error code to the standard system namespace NamespaceConstant.ERR
      Parameters:
      code - The local part of the name of the error code
    • withErrorCode

      public XPathException withErrorCode(String code)
      Set the error code. The error code is a QName; this method sets the local part of the name, setting the namespace of the error code to the standard system namespace NamespaceConstant.ERR
      Parameters:
      code - The local part of the name of the error code
      Returns:
      this XPathException object in a modified state
    • withErrorCode

      public XPathException withErrorCode(StructuredQName code)
    • replacingErrorCode

      public XPathException replacingErrorCode(String oldCode, String newCode)
    • maybeSetErrorCode

      public void maybeSetErrorCode(String code)
      Set the error code, provided it has not already been set. The error code is a QName; this method sets the local part of the name, setting the namespace of the error code to the standard system namespace NamespaceConstant.ERR
      Parameters:
      code - The local part of the name of the error code
    • maybeWithErrorCode

      public XPathException maybeWithErrorCode(String code)
    • setErrorCodeQName

      public void setErrorCodeQName(StructuredQName code)
      Set the error code. The error code is a QName; this method sets both parts of the name.
      Parameters:
      code - The error code as a QName
    • getErrorCodeQName

      public StructuredQName getErrorCodeQName()
      Get the error code as a QName
      Returns:
      the error code as a QName
    • showErrorCode

      public String showErrorCode()
    • hasErrorCode

      public boolean hasErrorCode(String... codes)
      Ask whether the error code is a specific system error code
      Parameters:
      codes - the local part of the error(s) expected
      Returns:
      true if the error code matches one of the required codes, treated as local names in the standard error namespace
    • setErrorObject

      public void setErrorObject(Sequence value)
      Set the error object associated with this error. This is used by the standard XPath fn:error() function
      Parameters:
      value - the error object, as supplied to the fn:error() function
    • getErrorObject

      public Sequence getErrorObject()
      Get the error object associated with this error. This is used by the standard XPath fn:error() function
      Returns:
      the error object, as supplied to the fn:error() function
    • setHasBeenReported

      public void setHasBeenReported(boolean reported)
      Mark this error to indicate that it has already been reported to the error listener, and should not be reported again
      Parameters:
      reported - true if the error has been reported to the error listener
    • hasBeenReported

      public boolean hasBeenReported()
      Ask whether this error is marked to indicate that it has already been reported to the error listener, and should not be reported again
      Returns:
      true if this error has already been reported
    • maybeSetLocation

      public void maybeSetLocation(Location here)
      Set the location of a message, only if it is not already set
      Parameters:
      here - the current location (or null)
    • maybeWithLocation

      public XPathException maybeWithLocation(Location here)
    • maybeSetContext

      public void maybeSetContext(XPathContext context)
      Set the context of a message, only if it is not already set
      Parameters:
      context - the current XPath context (or null)
    • maybeWithContext

      public XPathException maybeWithContext(XPathContext context)
    • isReportableStatically

      public boolean isReportableStatically()
      Tests whether this is a dynamic error that may be reported statically if it is detected statically
      Returns:
      true if the error can be reported statically