Package 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:
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
-
-
Field Summary
Fields Modifier and Type Field Description static byteALWAYS_PRESERVEstatic byteALWAYS_STRIPstatic byteCANNOT_STRIPstatic bytePRESERVE_PARENTstatic byteSTRIP_DEFAULT-
Fields inherited from class net.sf.saxon.event.ProxyReceiver
nextReceiver
-
Fields inherited from class net.sf.saxon.event.SequenceReceiver
pipelineConfiguration, previousAtomic, systemId
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidattribute(int nameCode, int typeCode, java.lang.CharSequence value, int locationId, int properties)Notify an attribute.voidcharacters(java.lang.CharSequence chars, int locationId, int properties)Handle a text nodevoidendElement()Handle an end-of-element eventStrippergetAnother()Get a clean copy of this stripperbooleangetStripAll()Determine if all whitespace is to be stripped (in this case, no further testing is needed)byteisSpacePreserving(int nameCode)Decide whether an element is in the set of white-space preserving element typesbyteisSpacePreserving(NodeInfo element)Decide whether an element is in the set of white-space preserving element types.voidopen()Callback interface for SAX: not for application usevoidsetPipelineConfiguration(PipelineConfiguration pipe)Set the pipeline configurationvoidsetStripAll()Specify that all whitespace nodes are to be strippedvoidstartElement(int nameCode, int typeCode, int locationId, int properties)Notify the start of an element-
Methods inherited from class net.sf.saxon.event.ProxyReceiver
close, comment, endDocument, getConfiguration, getDocumentLocator, getNamePool, getUnderlyingReceiver, namespace, processingInstruction, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startContent, startDocument
-
Methods inherited from class net.sf.saxon.event.SequenceReceiver
append, getPipelineConfiguration, getSystemId
-
-
-
-
Field Detail
-
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
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)
-
setPipelineConfiguration
public void setPipelineConfiguration(PipelineConfiguration pipe)
Description copied from interface:ReceiverSet the pipeline configuration- Specified by:
setPipelineConfigurationin interfaceReceiver- Overrides:
setPipelineConfigurationin classProxyReceiver
-
isSpacePreserving
public byte isSpacePreserving(int nameCode) throws XPathExceptionDecide 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 XPathExceptionCallback interface for SAX: not for application use- Specified by:
openin interfaceReceiver- Overrides:
openin classProxyReceiver- Throws:
XPathException
-
startElement
public void startElement(int nameCode, int typeCode, int locationId, int properties) throws XPathExceptionDescription copied from class:ProxyReceiverNotify the start of an element- Specified by:
startElementin interfaceReceiver- Overrides:
startElementin classProxyReceiver- 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 aLocationProviderto 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 XPathExceptionDescription copied from class:ProxyReceiverNotify an attribute. Attributes are notified after the startElement event, and before any children. Namespaces and attributes may be intermingled.- Specified by:
attributein interfaceReceiver- Overrides:
attributein classProxyReceiver- Parameters:
nameCode- The name of the attribute, as held in the name pooltypeCode- The type of the attribute, as held in the name poollocationId- an integer which can be interpreted using aLocationProviderto 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 XPathExceptionHandle an end-of-element event- Specified by:
endElementin interfaceReceiver- Overrides:
endElementin classProxyReceiver- Throws:
XPathException
-
characters
public void characters(java.lang.CharSequence chars, int locationId, int properties) throws XPathExceptionHandle a text node- Specified by:
charactersin interfaceReceiver- Overrides:
charactersin classProxyReceiver- Parameters:
chars- The characterslocationId- an integer which can be interpreted using aLocationProviderto 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
-
-