Package com.saxonica.ee.schema.sdoc

## Class VersionControlFilter

- java.lang.Object
- - net.sf.saxon.event.SequenceReceiver
  - - net.sf.saxon.event.ProxyReceiver
    - - com.saxonica.ee.schema.sdoc.VersionControlFilter

- All Implemented Interfaces:
    `javax.xml.transform.Result`, `Receiver`

      public class VersionControlFilter
      extends ProxyReceiver

  This is a filter inserted into the input pipeline for processing schema documents, whose task is to examine attributes such as vc:maxVersion and discard those parts of the schema document that are to be ignored because of those attributes.

  Although this mechanism is defined only for use with XSD 1.1, we support it also with XSD 1.0.

- - ### 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`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `VersionControlFilter​(SchemaCompiler compiler, Receiver next)` | Create a VersionControlFilter

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `characters​(java.lang.CharSequence chars, Location locationId, int properties)` | Character data
    `void` | `comment​(java.lang.CharSequence chars, Location locationId, int properties)` | Output a comment
    `void` | `endDocument()` | Notify the end of a document node
    `void` | `endElement()` | End of element
    `void` | `open()` | Start of document
    `void` | `processingInstruction​(java.lang.String target, java.lang.CharSequence data, Location locationId, int properties)` | Processing Instruction
    `void` | `startElement​(NodeName elemName, SchemaType type, AttributeMap attributes, NamespaceMap namespaces, Location location, int properties)` | Notify the start of an element.

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

      `append, close, getNamePool, getNextReceiver, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument, usesTypeAnnotations`

    - ### 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`

- - ### Constructor Detail

    - #### VersionControlFilter

          public VersionControlFilter​(SchemaCompiler compiler,
                                      Receiver next)

      Create a VersionControlFilter
      Parameters:
        `compiler` - the schema compiler
        `next` - the next receiver in the pipeline

  - ### Method Detail

    - #### open

          public void open()
                    throws XPathException

      Start of document
      Specified by:
        `open` in interface `Receiver`
      Overrides:
        `open` in class `ProxyReceiver`
      Throws:
        `XPathException` - if an error occurs

    - #### startElement

          public void startElement​(NodeName elemName,
                                   SchemaType type,
                                   AttributeMap attributes,
                                   NamespaceMap namespaces,
                                   Location location,
                                   int properties)
                            throws XPathException

      Notify the start of an element.
      Specified by:
        `startElement` in interface `Receiver`
      Overrides:
        `startElement` in class `ProxyReceiver`
      Parameters:
        `elemName` - the name of the element.
        `type` - integer code identifying the element's type within the name pool.
        `attributes` -
        `location` - the location of the element in the source document
        `properties` - bit-significant properties of the element node
        `namespaces` - the in-scope namespaces of this element: generally this is all the in-scope namespaces, without relying on inheriting namespaces from parent elements
      Throws:
        `XPathException` - if an error occurs

    - #### endElement

          public void endElement()
                          throws XPathException

      End of element
      Specified by:
        `endElement` in interface `Receiver`
      Overrides:
        `endElement` in class `ProxyReceiver`
      Throws:
        `XPathException` - if an error occurs

    - #### characters

          public void characters​(java.lang.CharSequence chars,
                                 Location locationId,
                                 int properties)
                          throws XPathException

      Character data
      Specified by:
        `characters` in interface `Receiver`
      Overrides:
        `characters` in class `ProxyReceiver`
      Parameters:
        `chars` - The characters
        `locationId` - provides information such as line number and system ID.
        `properties` - Bit significant value. The following bits are defined:
        DISABLE_ESCAPING
          Disable escaping for this text node
        USE_CDATA
          Output as a CDATA section
      Throws:
        `XPathException` - if an error occurs

    - #### processingInstruction

          public void processingInstruction​(java.lang.String target,
                                            java.lang.CharSequence data,
                                            Location locationId,
                                            int properties)

      Processing Instruction
      Specified by:
        `processingInstruction` in interface `Receiver`
      Overrides:
        `processingInstruction` in class `ProxyReceiver`
      Parameters:
        `target` - The PI name. This must be a legal name (it will not be checked).
        `data` - The data portion of the processing instruction
        `locationId` - provides information such as line number and system ID.
        `properties` - Additional information about the PI.

    - #### comment

          public void comment​(java.lang.CharSequence chars,
                              Location locationId,
                              int properties)
                       throws XPathException

      Output a comment
      Specified by:
        `comment` in interface `Receiver`
      Overrides:
        `comment` in class `ProxyReceiver`
      Parameters:
        `chars` - The content of the comment
        `locationId` - provides information such as line number and system ID.
        `properties` - Additional information about the comment.
      Throws:
        `XPathException` - if an error occurs

    - #### endDocument

          public void endDocument()
                           throws XPathException

      Notify the end of a document node
      Specified by:
        `endDocument` in interface `Receiver`
      Overrides:
        `endDocument` in class `ProxyReceiver`
      Throws:
        `XPathException` - if an error occurs