Class XPathException

All Implemented Interfaces:
Serializable
Direct Known Subclasses:
CopyNamespaceSensitiveException, NoDynamicContextException, NoOpenStartTagException, TerminationException, ValidationException, XPathException.Circularity

public class XPathException extends TransformerException
XPathException is used to indicate an error in an XPath expression. It will generally be either a StaticError or a DynamicError; ValidationExceptions (arising from schema validation) form a third category
See Also:
  • Field Details

  • 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, SourceLocator 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, SourceLocator loc, Throwable err)
      Create an XPathException that supplies an error message and wraps an underlying exception and supplies location information
      Parameters:
      message - the error message (which should generally explain what Saxon was doing when the underlying exception occurred)
      loc - indicates where in the user-written query or stylesheet (or sometimes in a source document) the error occurred
      err - the underlying exception (the cause of this exception)
    • 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(TransformerException err)
      Create an XPathException from a JAXP TransformerException. If the TransformerException is an XPathException, or if its cause is an XPathException, that XPathException is returned unchanged; otherwise the TransformerException is wrapped.
      Parameters:
      err - the supplied JAXP TransformerException
      Returns:
      an XPathException obtained from the supplied TransformerException
    • makeStatic

      public XPathException makeStatic()
      Force an exception to a static error
      Returns:
      this exception, marked as a static error
    • 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
    • getXPathContext

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

      public void setAdditionalLocationText(String text)
      Set additional location text. This gives extra information about the position of the error in textual form. Where XPath is embedded within a host language such as XSLT, the formal location information identifies the location of the error in the XSLT module, while this string locates the error within a specific XPath expression. The information is typically used only for static errors.
      Parameters:
      text - additional information about the location of the error, designed to be output as a prefix to the error message if desired. (It is not concatenated with the message, because it may be superfluous in an IDE environment.)
    • getAdditionalLocationText

      public String getAdditionalLocationText()
      Get the additional location text, if any. This gives extra information about the position of the error in textual form. Where XPath is embedded within a host language such as XSLT, the formal location information identifies the location of the error in the XSLT module, while this string locates the error within a specific XPath expression. The information is typically used only for static errors.
      Returns:
      additional information about the location of the error, designed to be output as a prefix to the error message if desired. (It is not concatenated with the message, because it may be superfluous in an IDE environment.)
    • 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
    • isStaticError

      public boolean isStaticError()
      Ask whether this exception represents a static error
      Returns:
      true if this exception is a static 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
    • 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
    • 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
    • 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
    • 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
    • getErrorCodeLocalPart

      public String getErrorCodeLocalPart()
      Get the local part of the name of the error code
      Returns:
      the local part of the name of the error code
    • getErrorCodeNamespace

      public String getErrorCodeNamespace()
      Get the namespace URI part of the name of the error code
      Returns:
      the namespace URI part of the name of the error code
    • setErrorObject

      public void setErrorObject(Value 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 Value 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(SourceLocator locator)
      Set the location of a message, only if it is not already set
      Parameters:
      locator - the current location (or null)
    • 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)
    • 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