## net.sf.saxon.type
Class ValidationFailure

    java.lang.Object
      net.sf.saxon.type.ValidationFailure

All Implemented Interfaces:
  javax.xml.transform.SourceLocator, ConversionResult, org.xml.sax.Locator

    public class ValidationFailure

extends java.lang.Object
implements javax.xml.transform.SourceLocator, org.xml.sax.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(java.lang.Exception exception)` Creates a new ValidationFailure with the given nested exception.
`ValidationFailure(java.lang.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()`
`java.lang.String` `getConstraintClauseNumber()` Get the constraint clause number
`java.lang.String` `getConstraintName()` Get the constraint name
`java.lang.String` `getConstraintReference()` Get the constraint name and clause in the format defined in XML Schema Part C (Outcome Tabulations).
`java.lang.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
`java.lang.String` `getErrorCode()`
`int` `getLineNumber()`
`javax.xml.transform.SourceLocator` `getLocator()`
`java.lang.String` `getMessage()`
`java.lang.String` `getPublicId()`
`java.lang.String` `getSystemId()`
`ValidationException` `makeException()`
`void` `setColumnNumber(int column)`
`void` `setConstraintReference(int schemaPart, java.lang.String constraintName, java.lang.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(java.lang.String errorCode)`
`void` `setLineNumber(int line)`
`void` `setLocator(javax.xml.transform.SourceLocator locator)`
`void` `setPublicId(java.lang.String id)`
`void` `setSourceLocator(javax.xml.transform.SourceLocator locator)`
`void` `setSystemId(java.lang.String id)`
`java.lang.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(java.lang.String message)

  Creates a new ValidationException with the given message.

  Parameters:
    `message` - the message for this Exception

### ValidationFailure

    public ValidationFailure(java.lang.Exception exception)

  Creates a new ValidationFailure with the given nested exception.

  Parameters:
    `exception` - the nested exception

Method Detail

### setConstraintReference

    public void setConstraintReference(int schemaPart,
                                       java.lang.String constraintName,
                                       java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.String getMessage()

### toString

    public java.lang.String toString()

  Returns the String representation of this Exception

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    the String representation of this Exception

### getPublicId

    public java.lang.String getPublicId()

  Specified by:
    `getPublicId` in interface `javax.xml.transform.SourceLocator`
  Specified by:
    `getPublicId` in interface `org.xml.sax.Locator`

### getSystemId

    public java.lang.String getSystemId()

  Specified by:
    `getSystemId` in interface `javax.xml.transform.SourceLocator`
  Specified by:
    `getSystemId` in interface `org.xml.sax.Locator`

### getLineNumber

    public int getLineNumber()

  Specified by:
    `getLineNumber` in interface `javax.xml.transform.SourceLocator`
  Specified by:
    `getLineNumber` in interface `org.xml.sax.Locator`

### getColumnNumber

    public int getColumnNumber()

  Specified by:
    `getColumnNumber` in interface `javax.xml.transform.SourceLocator`
  Specified by:
    `getColumnNumber` in interface `org.xml.sax.Locator`

### setPublicId

    public void setPublicId(java.lang.String id)

### setSystemId

    public void setSystemId(java.lang.String id)

### setLineNumber

    public void setLineNumber(int line)

### setColumnNumber

    public void setColumnNumber(int column)

### setLocator

    public void setLocator(javax.xml.transform.SourceLocator locator)

### setSourceLocator

    public void setSourceLocator(javax.xml.transform.SourceLocator locator)

### getLocator

    public javax.xml.transform.SourceLocator getLocator()

### setErrorCode

    public void setErrorCode(java.lang.String errorCode)

### getErrorCode

    public java.lang.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

Copyright (c) Saxonica Limited. All rights reserved.