Class 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
  • Field Details

  • Constructor Details

  • Method Details

    • 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