## net.sf.saxon.type
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 Summary
`ValidationFailure(Exception exception)` Creates a new ValidationFailure with the given nested exception.
`ValidationFailure(String message)` Creates a new ValidationException with the given message.

Method Summary
`AtomicValue` `asAtomic()` 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.
`int` `getColumnNumber()`
`String` `getConstraintClauseNumber()` Get the constraint clause number
`String` `getConstraintName()` Get the constraint name
`String` `getConstraintReference()` Get the constraint name and clause in the format defined in XML Schema Part C (Outcome Tabulations).
`String` `getConstraintReferenceMessage()` Get the constraint reference as a string for inserting into an error message.
`int` `getConstraintSchemaPart()` Get the "schema part" component of the constraint reference
`String` `getErrorCode()`
`StructuredQName` `getErrorCodeQName()`
`int` `getLineNumber()`
`SourceLocator` `getLocator()`
`String` `getMessage()`
`String` `getPublicId()`
`String` `getSystemId()`
`ValidationException` `makeException()`
`ValidationException` `makeException(String contextMessage)`
`void` `setColumnNumber(int column)`
`void` `setConstraintReference(int schemaPart, String constraintName, String clause)` Set a reference to the constraint in XML Schema that is not satisfied
`void` `setConstraintReference(ValidationFailure e)` Copy the constraint reference from another exception object
`void` `setErrorCode(String errorCode)`
`void` `setErrorCodeQName(StructuredQName errorCode)`
`void` `setLineNumber(int line)`
`void` `setLocator(SourceLocator locator)`
`void` `setPublicId(String id)`
`void` `setSourceLocator(SourceLocator locator)`
`void` `setSystemId(String id)`
`String` `toString()` Returns the String representation of this Exception

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### 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 Detail

### 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 `SourceLocator`
  Specified by:
    `getPublicId` in interface `Locator`

### getSystemId

    public String getSystemId()

  Specified by:
    `getSystemId` in interface `SourceLocator`
  Specified by:
    `getSystemId` in interface `Locator`

### getLineNumber

    public int getLineNumber()

  Specified by:
    `getLineNumber` in interface `SourceLocator`
  Specified by:
    `getLineNumber` in interface `Locator`

### getColumnNumber

    public int getColumnNumber()

  Specified by:
    `getColumnNumber` in interface `SourceLocator`
  Specified by:
    `getColumnNumber` in interface `Locator`

### 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)

### setErrorCodeQName

    public void setErrorCodeQName(StructuredQName errorCode)

### getErrorCode

    public String getErrorCode()

### getErrorCodeQName

    public StructuredQName getErrorCodeQName()

### makeException

    public ValidationException makeException()

### makeException

    public ValidationException makeException(String contextMessage)

### 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

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