net.sf.saxon.trans
Class XPathException

java.lang.Object
  extended by java.lang.Throwable
      extended by java.lang.Exception
          extended by javax.xml.transform.TransformerException
              extended by net.sf.saxon.trans.XPathException
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
CopyNamespaceSensitiveException, NoDynamicContextException, NoOpenStartTagException, PTreeReader.PTreeException, 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:
Serialized Form

Nested Class Summary
static class XPathException.Circularity
          Subclass of XPathException used to report circularities
 
Constructor Summary
XPathException(String message)
          Create an XPathException with an error message
XPathException(String message, SourceLocator loc)
          Create an XPathException that supplies an error message and supplies location information
XPathException(String message, SourceLocator loc, Throwable err)
          Create an XPathException that supplies an error message and wraps an underlying exception and supplies location information
XPathException(String message, String errorCode)
          Create an XPathException that supplies an error message and an error code
XPathException(String message, String errorCode, XPathContext context)
          Create an XPathException that supplies an error message and an error code and provides the dynamic context
XPathException(String message, Throwable err)
          Create an XPathException that supplies an error message and wraps an underlying exception
XPathException(Throwable err)
          Create an XPathException that wraps another exception
 
Method Summary
 String getAdditionalLocationText()
          Get the additional location text, if any.
 String getErrorCodeLocalPart()
          Get the local part of the name of the error code
 String getErrorCodeNamespace()
          Get the namespace URI part of the name of the error code
 StructuredQName getErrorCodeQName()
          Get the error code as a QName
 Value getErrorObject()
          Get the error object associated with this error.
 XPathContext getXPathContext()
          Get the dynamic context at the time the exception occurred
 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
 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
 boolean isReportableStatically()
          Tests whether this is a dynamic error that may be reported statically if it is detected statically
 boolean isStaticError()
          Ask whether this exception represents a static error
 boolean isTypeError()
          Ask whether this exception represents a type error
 XPathException makeStatic()
          Force an exception to a static error
static XPathException makeXPathException(TransformerException err)
          Create an XPathException from a JAXP TransformerException.
 void maybeSetContext(XPathContext context)
          Set the context of a message, only if it is not already set
 void maybeSetErrorCode(String code)
          Set the error code, provided it has not already been set.
 void maybeSetLocation(SourceLocator locator)
          Set the location of a message, only if it is not already set
 void setAdditionalLocationText(String text)
          Set additional location text.
 void setErrorCode(String code)
          Set the error code.
 void setErrorCodeQName(StructuredQName code)
          Set the error code.
 void setErrorObject(Value value)
          Set the error object associated with this error.
 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
 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
 void setIsStaticError(boolean is)
          Mark this exception to indicate that it represents (or does not represent) a static error
 void setIsTypeError(boolean is)
          Mark this exception to indicate that it represents (or does not represent) a type error
 void setXPathContext(XPathContext context)
          Set dynamic context information in the exception object
 
Methods inherited from class javax.xml.transform.TransformerException
getCause, getException, getLocationAsString, getLocator, getMessageAndLocation, initCause, printStackTrace, printStackTrace, printStackTrace, setLocator
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, setStackTrace, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

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 Detail

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 -

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


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