Class ValidatingFilter

All Implemented Interfaces:
Result, Receiver
Direct Known Subclasses:
ContentValidator, EntityValidator, IdValidator, ValidationStack, XSIAttributeHandler

public class ValidatingFilter extends ProxyReceiver
This class is used for a filter on the validation pipeline. It provides error reporting services to each of the filters.
  • Method Details

    • getValidationContext

      public ValidationContext getValidationContext()
      Get the validation context for this validation episode
      Returns:
      the validation context
    • setValidationContext

      public void setValidationContext(ValidationContext validationContext)
      Set the validation context for this validation episode
      Parameters:
      validationContext - the validation context
    • setConstraintChecker

      public void setConstraintChecker(ConstraintChecker checker)
      Set the constraint checker used in this pipeline
      Parameters:
      checker - the constraint checker
    • getConstraintChecker

      protected ConstraintChecker getConstraintChecker()
      Get the constraint checker used in this pipeline
      Returns:
      the constraint checker
    • setStartTagBuffer

      public void setStartTagBuffer(AttributeInheritor startTag)
      Set the StartTagBuffer, which buffers attributes on the element start tag, and also acts as the namespaceResolver to be used for resolving QName-valued attributes
      Parameters:
      startTag - the namespace resolver
    • getAttributeInheritor

      public AttributeInheritor getAttributeInheritor()
      Get the AttributeInheritor which maintains details of inherited attributes for use in conditional type assignment
      Returns:
      the AttributeInheritor
    • usesTypeAnnotations

      public boolean usesTypeAnnotations()
      Ask whether this Receiver (or the downstream pipeline) makes any use of the type annotations supplied on element and attribute events
      Specified by:
      usesTypeAnnotations in interface Receiver
      Overrides:
      usesTypeAnnotations in class ProxyReceiver
      Returns:
      true if the Receiver makes any use of this information. If false, the caller may supply untyped nodes instead of supplying the type annotation. Validation filters overwrite any type annotations arriving in the input event stream, so this instance of the method returns false.
    • append

      public void append(Item item, Location locationId, int copyNamespaces) throws XPathException
      Description copied from class: ProxyReceiver
      Append an arbitrary item (node or atomic value) to the output
      Specified by:
      append in interface Receiver
      Overrides:
      append in class ProxyReceiver
      Parameters:
      item - the item to be appended
      locationId - the location of the calling instruction, for diagnostics
      copyNamespaces - if the item is an element node, this indicates whether its namespaces need to be copied. Values are ReceiverOption.ALL_NAMESPACES; the default (0) means
      Throws:
      XPathException - if an error occurs
    • reportValidationError

      protected void reportValidationError(ValidationFailure err, boolean issueComment, Location locationId) throws XPathException
      Report a validation error
      Parameters:
      err - The validation failure
      issueComment - true if the validation error message is to be written as an XML comment to the result document
      locationId - identifies the location in the source document or stylesheet/query where the validation error was detected
      Throws:
      XPathException - if too many invalidities have been reported
    • reportIfInvalid

      protected void reportIfInvalid() throws ValidationException
      Throws:
      ValidationException