## net.sf.saxon.event
Class Stripper

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

All Implemented Interfaces:
  Result, Receiver

Direct Known Subclasses:
  AllElementStripper, RuleBasedStripper, StylesheetStripper

    public abstract class Stripper

extends ProxyReceiver

The RuleBasedStripper class performs whitespace stripping according to the rules of the xsl:strip-space and xsl:preserve-space instructions. It maintains details of which elements need to be stripped. The code is written to act as a SAX-like filter to do the stripping.

Author:
  Michael H. Kay

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
`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
`Stripper()`

Method Summary
`void` `attribute(int nameCode, int typeCode, CharSequence value, int locationId, int properties)` Notify an attribute.
`void` `characters(CharSequence chars, int locationId, int properties)` Handle a text node
`void` `endElement()` Handle an end-of-element event
`abstract Stripper` `getAnother()` Get a clean copy of this stripper.
`abstract byte` `isSpacePreserving(int fingerprint)` 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` `startElement(int nameCode, int typeCode, int locationId, int properties)` Notify the start of an element
`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
`append, close, comment, endDocument, getConfiguration, getDocumentLocator, getNamePool, getUnderlyingReceiver, namespace, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startContent, startDocument`

Methods inherited from class net.sf.saxon.event.SequenceReceiver
`append, getPipelineConfiguration, getSystemId`

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

    public Stripper()

Method Detail

### getAnother

    public abstract Stripper getAnother()

  Get a clean copy of this stripper. The new copy shares the same PipelineConfiguration as the original, but the underlying receiver (that is, the destination for post-stripping events) is left uninitialized.

### isSpacePreserving

    public abstract byte isSpacePreserving(int fingerprint)
                                    throws XPathException

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

  Parameters:
    `fingerprint` - 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
  Throws:
    `XPathException` - if the rules are ambiguous and ambiguities are to be reported as errors

### 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.
    `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
    `properties` - properties of the element node
  Throws:
    `XPathException`

### attribute

    public void attribute(int nameCode,
                          int typeCode,
                          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
    `value` - the string value of the attribute
    `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
    `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(CharSequence chars,
                           int locationId,
                           int properties)
                    throws XPathException

  Handle a text node

  Specified by:
    `characters` in interface `Receiver`
  Overrides:
    `characters` in class `ProxyReceiver`
  Parameters:
    `chars` - The characters
    `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
    `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`

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

Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.