## net.sf.saxon.event
Class Stripper

    java.lang.Object
      net.sf.saxon.event.ProxyReceiver
          net.sf.saxon.event.Stripper

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

Direct Known Subclasses:
  AllElementStripper, StylesheetStripper

public class Stripper
extends ProxyReceiver

The Stripper class maintains details of which elements need to be stripped. The code is written to act as a SAX-like filter to do the stripping.

Field Summary
`static byte` `ALWAYS_PRESERVE`
`static byte` `ALWAYS_STRIP`
`static byte` `CANNOT_STRIP`
`static byte` `PRESERVE_PARENT`
`static byte` `STRIP_DEFAULT`

Fields inherited from class net.sf.saxon.event.ProxyReceiver
`baseReceiver, pipelineConfig, systemId`

Fields inherited from interface javax.xml.transform.Result
`PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

Constructor Summary
`protected` `Stripper()` Default constructor for use in subclasses
`` `Stripper(Mode stripperRules)` create a Stripper and initialise variables

Method Summary
`void` `attribute(int nameCode, int typeCode, java.lang.CharSequence value, int locationId, int properties)` Notify an attribute.
`void` `characters(java.lang.CharSequence chars, int locationId, int properties)` Handle a text node
`void` `endElement()` Handle an end-of-element event
`Stripper` `getAnother()` Get a clean copy of this stripper
`boolean` `getStripAll()` Determine if all whitespace is to be stripped (in this case, no further testing is needed)
`byte` `isSpacePreserving(int nameCode)` Decide whether an element is in the set of white-space preserving element types
`byte` `isSpacePreserving(NodeInfo element)` Decide whether an element is in the set of white-space preserving element types.
`void` `open()` Callback interface for SAX: not for application use
`void` `setController(Controller controller)` Set the Controller to be used
`void` `setStripAll()` Specify that all whitespace nodes are to be stripped
`void` `startElement(int nameCode, int typeCode, int locationId, int properties)` Notify the start of an element

Methods inherited from class net.sf.saxon.event.ProxyReceiver
`close, comment, endDocument, getConfiguration, getDocumentLocator, getNamePool, getPipelineConfiguration, getSystemId, getUnderlyingReceiver, namespace, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startContent, startDocument`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ALWAYS_PRESERVE

    public static final byte ALWAYS_PRESERVE

See Also:
  Constant Field Values

### ALWAYS_STRIP

    public static final byte ALWAYS_STRIP

See Also:
  Constant Field Values

### STRIP_DEFAULT

    public static final byte STRIP_DEFAULT

See Also:
  Constant Field Values

### PRESERVE_PARENT

    public static final byte PRESERVE_PARENT

See Also:
  Constant Field Values

### CANNOT_STRIP

    public static final byte CANNOT_STRIP

See Also:
  Constant Field Values

Constructor Detail

### Stripper

    protected Stripper()

  Default constructor for use in subclasses

### Stripper

    public Stripper(Mode stripperRules)

  create a Stripper and initialise variables

Parameters:
  `stripperRules` - defines which elements have whitespace stripped. If null, all whitespace is preserved.

Method Detail

### getAnother

    public Stripper getAnother()

  Get a clean copy of this stripper

### setStripAll

    public void setStripAll()

  Specify that all whitespace nodes are to be stripped

### getStripAll

    public boolean getStripAll()

  Determine if all whitespace is to be stripped (in this case, no further testing is needed)

### setController

    public void setController(Controller controller)

  Set the Controller to be used

### isSpacePreserving

    public byte isSpacePreserving(int nameCode)

  Decide whether an element is in the set of white-space preserving element types

  Parameters:
    `nameCode` - Identifies the name of the element whose whitespace is to be preserved
  Returns:
    ALWAYS_PRESERVE if the element is in the set of white-space preserving element types, ALWAYS_STRIP if the element is to be stripped regardless of the xml:space setting, and STRIP_DEFAULT otherwise

### isSpacePreserving

    public byte isSpacePreserving(NodeInfo element)

  Decide whether an element is in the set of white-space preserving element types. This version of the method is useful in cases where getting the namecode of the element is potentially expensive, e.g. with DOM nodes.

  Parameters:
    `element` - Identifies the element whose whitespace is possibly to be preserved
  Returns:
    ALWAYS_PRESERVE if the element is in the set of white-space preserving element types, ALWAYS_STRIP if the element is to be stripped regardless of the xml:space setting, and STRIP_DEFAULT otherwise

### open

    public void open()
              throws XPathException

  Callback interface for SAX: not for application use

  Specified by:
    `open` in interface `Receiver`
  Overrides:
    `open` in class `ProxyReceiver`
  Throws:
    `XPathException`

### startElement

    public void startElement(int nameCode,
                             int typeCode,
                             int locationId,
                             int properties)
                      throws XPathException

  Description copied from class: `ProxyReceiver`
  Notify the start of an element

  Specified by:
    `startElement` in interface `Receiver`
  Overrides:
    `startElement` in class `ProxyReceiver`
  Parameters:
    `nameCode` - integer code identifying the name of the element within the name pool.
    `typeCode` - integer code identifying the element's type within the name pool.
    `properties` - properties of the element node
  Throws:
    `XPathException`

### attribute

    public void attribute(int nameCode,
                          int typeCode,
                          java.lang.CharSequence value,
                          int locationId,
                          int properties)
                   throws XPathException

  Description copied from class: `ProxyReceiver`
  Notify an attribute. Attributes are notified after the startElement event, and before any children. Namespaces and attributes may be intermingled.

  Specified by:
    `attribute` in interface `Receiver`
  Overrides:
    `attribute` in class `ProxyReceiver`
  Parameters:
    `nameCode` - The name of the attribute, as held in the name pool
    `typeCode` - The type of the attribute, as held in the name pool
    `properties` - Bit significant value. The following bits are defined:
    DISABLE_ESCAPING
  Disable escaping for this attribute
    NO_SPECIAL_CHARACTERS
  Attribute value contains no special characters
  Throws:
    `XPathException`

### endElement

    public void endElement()
                    throws XPathException

  Handle an end-of-element event

  Specified by:
    `endElement` in interface `Receiver`
  Overrides:
    `endElement` in class `ProxyReceiver`
  Throws:
    `XPathException`

### characters

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

  Handle a text node

  Specified by:
    `characters` in interface `Receiver`
  Overrides:
    `characters` in class `ProxyReceiver`
  Throws:
    `XPathException`