Class Stripper

All Implemented Interfaces:
Result, Receiver
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.
Author:
Michael H. Kay
  • Field Details

  • Constructor Details

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

    • 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)
    • setPipelineConfiguration

      public void setPipelineConfiguration(PipelineConfiguration pipe)
      Description copied from interface: Receiver
      Set the pipeline configuration
      Specified by:
      setPipelineConfiguration in interface Receiver
      Overrides:
      setPipelineConfiguration in class ProxyReceiver
    • isSpacePreserving

      public byte isSpacePreserving(int nameCode) throws XPathException
      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
      Throws:
      XPathException
    • isSpacePreserving

      public byte isSpacePreserving(NodeInfo element) throws XPathException
      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
      Throws:
      XPathException
    • 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
      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
      NO_SPECIAL_CHARACTERS
      Value contains no special characters
      WHITESPACE
      Text is all whitespace
      Throws:
      XPathException