Class Stripper

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