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

    Constructors
    Constructor and Description
    `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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-2013 Saxonica Limited. All rights reserved.