Class Stripper

  • All Implemented Interfaces:
    javax.xml.transform.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
    • 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)
      • 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
      • 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,
                              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
        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
      • 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
        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