Class 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 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 org.xml.sax.Locator
        Specified by:
        getPublicId in interface javax.xml.transform.SourceLocator
      • getSystemId

        public java.lang.String getSystemId()
        Specified by:
        getSystemId in interface org.xml.sax.Locator
        Specified by:
        getSystemId in interface javax.xml.transform.SourceLocator
      • getLineNumber

        public int getLineNumber()
        Specified by:
        getLineNumber in interface org.xml.sax.Locator
        Specified by:
        getLineNumber in interface javax.xml.transform.SourceLocator
      • getColumnNumber

        public int getColumnNumber()
        Specified by:
        getColumnNumber in interface org.xml.sax.Locator
        Specified by:
        getColumnNumber in interface javax.xml.transform.SourceLocator
      • 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)
      • setErrorCodeQName

        public void setErrorCodeQName​(StructuredQName errorCode)
      • getErrorCode

        public java.lang.String getErrorCode()
      • makeException

        public ValidationException makeException​(java.lang.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