Class ValidationFailure

java.lang.Object
net.sf.saxon.type.ValidationFailure
All Implemented Interfaces:
SourceLocator, ConversionResult, Locator

public class ValidationFailure extends Object implements SourceLocator, Locator, ConversionResult
This exception indicates a failure when validating an instance against a type defined in a schema.

This class holds the same information as a ValidationException, except that it is not an exception, and does not carry system overheads such as a stack trace. It is used because operations such as "castable", and validation of values in a union, cause validation failures on a success path and it is costly to throw, or even to create, exception objects on a success path.

  • Constructor Details

    • ValidationFailure

      public ValidationFailure(String message)
      Creates a new ValidationException with the given message.
      Parameters:
      message - the message for this Exception
    • ValidationFailure

      public ValidationFailure(Exception exception)
      Creates a new ValidationFailure with the given nested exception.
      Parameters:
      exception - the nested exception
  • Method Details

    • setConstraintReference

      public void setConstraintReference(int schemaPart, String constraintName, String clause)
      Set a reference to the constraint in XML Schema that is not satisfied
      Parameters:
      schemaPart - - 1 or 2, depending whether the constraint is in XMLSchema part 1 or part 2
      constraintName - - the short name of the constraint in XMLSchema, as a fragment identifier in the HTML of the XML Schema Part 1 specification
      clause - - the clause number within the description of that constraint
    • setConstraintReference

      public void setConstraintReference(ValidationFailure e)
      Copy the constraint reference from another exception object
      Parameters:
      e - the other exception object from which to copy the information
    • getConstraintReferenceMessage

      public String getConstraintReferenceMessage()
      Get the constraint reference as a string for inserting into an error message.
      Returns:
      the reference as a message, or null if no information is available
    • getConstraintSchemaPart

      public int getConstraintSchemaPart()
      Get the "schema part" component of the constraint reference
      Returns:
      1 or 2 depending on whether the violated constraint is in XML Schema Part 1 or Part 2; or -1 if there is no constraint reference
    • getConstraintName

      public String getConstraintName()
      Get the constraint name
      Returns:
      the name of the violated constraint, in the form of a fragment identifier within the published XML Schema specification; or null if the information is not available.
    • getConstraintClauseNumber

      public String getConstraintClauseNumber()
      Get the constraint clause number
      Returns:
      the section number of the clause containing the constraint that has been violated. Generally a decimal number in the form n.n.n; possibly a sequence of such numbers separated by semicolons. Or null if the information is not available.
    • getConstraintReference

      public String getConstraintReference()
      Get the constraint name and clause in the format defined in XML Schema Part C (Outcome Tabulations). This mandates the format validation-rule-name.clause-number
      Returns:
      the constraint reference, for example "cos-ct-extends.1.2"; or null if the reference is not known.
    • getMessage

      public String getMessage()
    • toString

      public String toString()
      Returns the String representation of this Exception
      Overrides:
      toString in class Object
      Returns:
      the String representation of this Exception
    • getPublicId

      public String getPublicId()
      Specified by:
      getPublicId in interface Locator
      Specified by:
      getPublicId in interface SourceLocator
    • getSystemId

      public String getSystemId()
      Specified by:
      getSystemId in interface Locator
      Specified by:
      getSystemId in interface SourceLocator
    • getLineNumber

      public int getLineNumber()
      Specified by:
      getLineNumber in interface Locator
      Specified by:
      getLineNumber in interface SourceLocator
    • getColumnNumber

      public int getColumnNumber()
      Specified by:
      getColumnNumber in interface Locator
      Specified by:
      getColumnNumber in interface SourceLocator
    • setPublicId

      public void setPublicId(String id)
    • setSystemId

      public void setSystemId(String id)
    • setLineNumber

      public void setLineNumber(int line)
    • setColumnNumber

      public void setColumnNumber(int column)
    • setLocator

      public void setLocator(SourceLocator locator)
    • setSourceLocator

      public void setSourceLocator(SourceLocator locator)
    • getLocator

      public SourceLocator getLocator()
    • setErrorCode

      public void setErrorCode(String errorCode)
    • getErrorCode

      public String getErrorCode()
    • makeException

      public ValidationException makeException()
    • asAtomic

      public AtomicValue asAtomic() throws ValidationException
      Calling this method on a ConversionResult returns the AtomicValue that results from the conversion if the conversion was successful, and throws a ValidationException explaining the conversion error otherwise.

      Use this method if you are calling a conversion method that returns a ConversionResult, and if you want to throw an exception if the conversion fails.

      Specified by:
      asAtomic in interface ConversionResult
      Returns:
      the atomic value that results from the conversion if the conversion was successful
      Throws:
      ValidationException - if the conversion was not successful