Package net.sf.saxon.event
Class SequenceNormalizer
- java.lang.Object
-
- net.sf.saxon.event.SequenceReceiver
-
- net.sf.saxon.event.ProxyReceiver
-
- net.sf.saxon.event.SequenceNormalizer
-
- All Implemented Interfaces:
javax.xml.transform.Result,Receiver
- Direct Known Subclasses:
SequenceNormalizerWithItemSeparator,SequenceNormalizerWithSpaceSeparator
public abstract class SequenceNormalizer extends ProxyReceiver
Implement the "sequence normalization" logic as defined in the XSLT 3.0/XQuery 3.0 serialization spec.There are two subclasses, which handle the different logic for the case where an
item-separatoris provided, and the case where whitespace-separation is used. Note that the whitespace case behaves differently from the case where the item-separator is set to a single space.Because this Receiver is often used as the entry point to the pipeline for a
Destination, it includes logic allowingonCloseaction for the Destination to be triggered when the Receiver is closed.
-
-
Field Summary
Fields Modifier and Type Field Description protected intlevel-
Fields inherited from class net.sf.saxon.event.ProxyReceiver
nextReceiver
-
Fields inherited from class net.sf.saxon.event.SequenceReceiver
pipelineConfiguration, previousAtomic, systemId
-
-
Constructor Summary
Constructors Constructor Description SequenceNormalizer(Receiver next)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcharacters(java.lang.CharSequence chars, Location locationId, int properties)Character datavoidclose()End of output.voidcomment(java.lang.CharSequence chars, Location locationId, int properties)Output a commentvoidendDocument()Notify the end of a document nodevoidendElement()End of elementvoidonClose(java.util.List<Action> actionList)Set actions to be performed when thisReceiveris closedvoidonClose(Action action)voidopen()Start of event streamvoidprocessingInstruction(java.lang.String target, java.lang.CharSequence data, Location locationId, int properties)Processing InstructionvoidstartDocument(int properties)Start of a document node.voidstartElement(NodeName elemName, SchemaType type, AttributeMap attributes, NamespaceMap namespaces, Location location, int properties)Notify the start of an element-
Methods inherited from class net.sf.saxon.event.ProxyReceiver
append, getNamePool, getNextReceiver, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, usesTypeAnnotations
-
Methods inherited from class net.sf.saxon.event.SequenceReceiver
append, decompose, flatten, getConfiguration, getErrorCodeForDecomposingFunctionItems, getPipelineConfiguration, getSystemId, handlesAppend
-
-
-
-
Constructor Detail
-
SequenceNormalizer
public SequenceNormalizer(Receiver next)
-
-
Method Detail
-
open
public void open() throws XPathExceptionStart of event stream- Specified by:
openin interfaceReceiver- Overrides:
openin classProxyReceiver- Throws:
XPathException- if an error occurs
-
startDocument
public void startDocument(int properties) throws XPathExceptionStart of a document node.- Specified by:
startDocumentin interfaceReceiver- Overrides:
startDocumentin classProxyReceiver- Parameters:
properties- bit-significant integer indicating properties of the document node. The definitions of the bits are in classReceiverOption- Throws:
XPathException- if an error occurs
-
endDocument
public void endDocument() throws XPathExceptionNotify the end of a document node- Specified by:
endDocumentin interfaceReceiver- Overrides:
endDocumentin classProxyReceiver- Throws:
XPathException- if an error occurs
-
startElement
public void startElement(NodeName elemName, SchemaType type, AttributeMap attributes, NamespaceMap namespaces, Location location, int properties) throws XPathException
Notify the start of an element- Specified by:
startElementin interfaceReceiver- Overrides:
startElementin classProxyReceiver- Parameters:
elemName- the name of the element.type- the type annotation of the element.attributes- the attributes of this elementnamespaces- the in-scope namespaces of this element: generally this is all the in-scope namespaces, without relying on inheriting namespaces from parent elementslocation- an object providing information about the module, line, and column where the node originatedproperties- bit-significant properties of the element node. If there are no relevant properties, zero is supplied. The definitions of the bits are in classReceiverOption- Throws:
XPathException- if an error occurs
-
characters
public void characters(java.lang.CharSequence chars, Location locationId, int properties) throws XPathExceptionCharacter data- Specified by:
charactersin interfaceReceiver- Overrides:
charactersin classProxyReceiver- Parameters:
chars- The characterslocationId- provides information such as line number and system ID.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
-
processingInstruction
public void processingInstruction(java.lang.String target, java.lang.CharSequence data, Location locationId, int properties) throws XPathExceptionProcessing Instruction- Specified by:
processingInstructionin interfaceReceiver- Overrides:
processingInstructionin classProxyReceiver- Parameters:
target- The PI name. This must be a legal name (it will not be checked).data- The data portion of the processing instructionlocationId- provides information such as line number and system ID.properties- Additional information about the PI.- Throws:
XPathException- if an error occurs
-
comment
public void comment(java.lang.CharSequence chars, Location locationId, int properties) throws XPathExceptionOutput a comment- Specified by:
commentin interfaceReceiver- Overrides:
commentin classProxyReceiver- Parameters:
chars- The content of the commentlocationId- provides information such as line number and system ID.properties- Additional information about the comment.- Throws:
XPathException- if an error occurs
-
endElement
public void endElement() throws XPathExceptionEnd of element- Specified by:
endElementin interfaceReceiver- Overrides:
endElementin classProxyReceiver- Throws:
XPathException- if an error occurs
-
close
public void close() throws XPathExceptionEnd of output. Note that closing this receiver also closes the rest of the pipeline.- Specified by:
closein interfaceReceiver- Overrides:
closein classProxyReceiver- Throws:
XPathException- if an error occurs
-
onClose
public void onClose(java.util.List<Action> actionList)
Set actions to be performed when thisReceiveris closed- Parameters:
actionList- a list of actions to be performed
-
onClose
public void onClose(Action action)
-
-