Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

    public 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

Nested Class Summary
`static class` | `Stripper.StripRuleTarget`

Field Summary
`static byte` | `ALWAYS_PRESERVE`
`static byte` | `ALWAYS_STRIP`
`static byte` | `CANNOT_STRIP`
`static Stripper.StripRuleTarget` | `PRESERVE`
`static byte` | `PRESERVE_PARENT`
`protected SpaceStrippingRule` | `rule`
`static Stripper.StripRuleTarget` | `STRIP`
`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(SpaceStrippingRule rule, Receiver next)`

Method Summary
`void` | `attribute(NodeName nameCode, SimpleType 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
`Stripper` | `getAnother(Receiver next)` Get a clean copy of this stripper.
`byte` | `isSpacePreserving(NodeName name)` 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(NodeName elemName, SchemaType type, 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, getNamePool, getUnderlyingReceiver, namespace, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startContent, startDocument`

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

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

Field Detail

### STRIP

    public static final Stripper.StripRuleTarget STRIP

### PRESERVE

    public static final Stripper.StripRuleTarget PRESERVE

### rule

    protected SpaceStrippingRule rule

### 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(SpaceStrippingRule rule,
                    Receiver next)

Method Detail

### getAnother

    public Stripper getAnother(Receiver next)

  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 changed.

  Parameters:
    `next` - the next receiver in the pipeline for the new Stripper
  Returns:
    a dublicate of this Stripper, with the output sent to "next".

### isSpacePreserving

    public final byte isSpacePreserving(NodeName name)
                                 throws XPathException

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

  Parameters:
    `name` - 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` - if an error occurs

### startElement

    public void startElement(NodeName elemName,
                             SchemaType type,
                             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:
    `elemName` - integer code identifying the name of the element within the name pool.
    `type` - 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` - if an error occurs

### attribute

    public void attribute(NodeName nameCode,
                          SimpleType 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` - if an error occurs

### 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` - if an error occurs

### 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` - if an error occurs

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

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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