# Package net.sf.saxon.tree.wrapper

This package defines a number of implementations of "virtual nodes" implemented as wrappers around other nodes.

The `SpaceStrippedNode` class provides a virtual tree in which whitespace text nodes in the underlying real tree are ignored.

The `TypeStrippedNode` class provides a virtual tree in which type annotations in the underlying real tree are ignored.

The `VirtualCopy` class provides a tree that is the same as the underlying tree in everything except node identity.

- Interface Summary
  Interface | Description
  --- | ---
  SiblingCountingNode | Interface that extends NodeInfo by providing a method to get the position of a node relative to its siblings.
  VirtualNode | This interface is implemented by NodeInfo implementations that act as wrappers on some underlying tree.
  WrappingFunction | Callback to create a VirtualNode that wraps a given NodeInfo

- Class Summary
  Class | Description
  --- | ---
  AbstractNodeWrapper | A node in the XML parse tree representing an XML element, character content, or attribute.
  AbstractVirtualNode | AbstractVirtualNode is an abstract superclass for VirtualNode implementations in which the underlying node is itself a Saxon NodeInfo.
  RebasedDocument | A `RebasedDocument` represents a view of a real Document in which all nodes are mapped to a different base URI and/or system ID using supplied mapping functions.
  RebasedNode | A RebasedNode is a view of a node, in a virtual tree that maps the base URI and/or system ID to new values
  SnapshotNode | This class represents a node within a tree produced by the snapshot() function, as a virtual copy of the relevant nodes in another tree.
  SpaceStrippedDocument | A SpaceStrippedDocument represents a view of a real Document in which selected whitespace text nodes are treated as having been stripped.
  SpaceStrippedNode | A StrippedNode is a view of a node, in a virtual tree that has whitespace text nodes stripped from it.
  TypeStrippedDocument | A TypeStrippedDocument represents a view of a real Document in which all nodes are untyped
  TypeStrippedNode | A TypeStrippedNode is a view of a node, in a virtual tree that has type annotations stripped from it.
  VirtualCopy | This class represents a node that is a virtual copy of another node: that is, it behaves as a node that's the same as another node, but has different identity.
  VirtualTreeInfo | Implementation of TreeInfo for a Virtual Copy tree
  VirtualUntypedCopy | This class represents a virtual copy of a node with type annotations stripped
  WrappingIterator | A WrappingIterator delivers wrappers for the nodes delivered by its underlying iterator.