Package com.saxonica.ee.validate

## Class ValidatingFilter

- java.lang.Object
- - net.sf.saxon.event.SequenceReceiver
  - - net.sf.saxon.event.ProxyReceiver
    - - com.saxonica.ee.validate.ValidatingFilter

- All Implemented Interfaces:
    `javax.xml.transform.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.

- - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.event.ProxyReceiver

      `nextReceiver`

    - ### Fields inherited from class net.sf.saxon.event.SequenceReceiver

      `pipelineConfiguration, previousAtomic, systemId`

    - ### Fields inherited from interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `append​(Item item, Location locationId, int copyNamespaces)` | Append an arbitrary item (node or atomic value) to the output
    `AttributeInheritor` | `getAttributeInheritor()` | Get the AttributeInheritor which maintains details of inherited attributes for use in conditional type assignment
    `protected ConstraintChecker` | `getConstraintChecker()` | Get the constraint checker used in this pipeline
    `ValidationContext` | `getValidationContext()` | Get the validation context for this validation episode
    `protected void` | `reportIfInvalid()` |
    `protected void` | `reportValidationError​(ValidationFailure err, boolean issueComment, Location locationId)` | Report a validation error
    `void` | `setConstraintChecker​(ConstraintChecker checker)` | Set the constraint checker used in this pipeline
    `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
    `void` | `setValidationContext​(ValidationContext validationContext)` | Set the validation context for this validation episode
    `boolean` | `usesTypeAnnotations()` | Ask whether this Receiver (or the downstream pipeline) makes any use of the type annotations supplied on element and attribute events

    - ### Methods inherited from class net.sf.saxon.event.ProxyReceiver

      `characters, close, comment, endDocument, endElement, getNamePool, getNextReceiver, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument, startElement`

    - ### Methods inherited from class net.sf.saxon.event.SequenceReceiver

      `append, decompose, flatten, getConfiguration, getErrorCodeForDecomposingFunctionItems, getPipelineConfiguration, getSystemId, handlesAppend`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### 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 exception
        `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 reporting the error fails

    - #### reportIfInvalid

          protected void reportIfInvalid()
                                  throws ValidationException

      Throws:
        `ValidationException`