Package com.saxonica.ee.validate

## Class AttributeInheritor

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

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

      public class AttributeInheritor
      extends ProxyReceiver

  This class handles attribute inheritance. It's a ProxyReceiver inserted into the validation pipeline that received notification of all events.

- - ### 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
    --- | ---
    `AttributeInheritor​(Receiver next)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `endElement()` | End of element
    `AttributeMap` | `gatherInheritedAttributes​(AttributeMap initialAtts)` | Get all inherited attributes
    `boolean` | `hasInheritedAttributes()` | Ask whether there are any attributes to inherit.
    `void` | `notifyInheritableAttribute​(NodeName nameCode, java.lang.String value, Location location, int properties)` | Notify an inheritable attribute
    `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, characters, close, comment, endDocument, getNamePool, getNextReceiver, open, processingInstruction, 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

    - #### AttributeInheritor

          public AttributeInheritor​(Receiver next)

  - ### Method Detail

    - #### 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` - the type annotation of the element.
        `attributes` - the attributes of this element
        `namespaces` - the in-scope namespaces of this element: generally this is all the in-scope namespaces, without relying on inheriting namespaces from parent elements
        `location` - an object providing information about the module, line, and column where the node originated
        `properties` - bit-significant properties of the element node. If there are no relevant properties, zero is supplied. The definitions of the bits are in class `ReceiverOption`
      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

    - #### notifyInheritableAttribute

          public void notifyInheritableAttribute​(NodeName nameCode,
                                                 java.lang.String value,
                                                 Location location,
                                                 int properties)

      Notify an inheritable attribute
      Parameters:
        `nameCode` - the name of the attribute
        `value` - the value of the attribute

    - #### gatherInheritedAttributes

          public AttributeMap gatherInheritedAttributes​(AttributeMap initialAtts)

      Get all inherited attributes
      Parameters:
        `initialAtts` - a collection of attributes; inherited attributes will be added to this collection unless there is already an attribute in the collection with the same name
      Returns:
        an expanded collection of attributes that also contains inherited attributes

    - #### hasInheritedAttributes

          public boolean hasInheritedAttributes()

      Ask whether there are any attributes to inherit. (This is an optimization, returning true when there are none does not matter)