Package net.sf.saxon.evpull
Class ComplexContentProcessor
- java.lang.Object
-
- net.sf.saxon.evpull.ComplexContentProcessor
-
- All Implemented Interfaces:
EventIterator
,PullEvent
public class ComplexContentProcessor extends java.lang.Object implements EventIterator
The ComplexContentProcessor is an EventIterator that deals with the events occurring between a startElement and endElement (or startDocument and endDocument) according to the XSLT/XQuery rules for constructing complex content. This includes:- Converting atomic values to text nodes (inserting space as a separator between adjacent nodes)
- Replacing nested document nodes by their children
- Merging adjacent text nodes and dropping zero-length text nodes
- Detecting mispositioned or duplicated attribute and namespace nodes
Note that if the content includes nodes such as element nodes, these will not be decomposed into a sequence of tree events, they will simply be returned as nodes.
-
-
Constructor Summary
Constructors Constructor Description ComplexContentProcessor(Configuration config, EventIterator base)
Create the ComplexContentProcessor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isFlatSequence()
Determine whether the EventIterator returns a flat sequence of events, or whether it can return nested event iteratorsPullEvent
next()
Get the next event in the sequence.
-
-
-
Constructor Detail
-
ComplexContentProcessor
public ComplexContentProcessor(Configuration config, EventIterator base)
Create the ComplexContentProcessor- Parameters:
config
- the Saxon Configurationbase
- the EventIterator that delivers the content of the element or document node
-
-
Method Detail
-
next
public PullEvent next() throws XPathException
Get the next event in the sequence. This will never be an EventIterator.- Specified by:
next
in interfaceEventIterator
- Returns:
- the next event, or null when the sequence is exhausted
- Throws:
XPathException
- if a dynamic evaluation error occurs
-
isFlatSequence
public boolean isFlatSequence()
Determine whether the EventIterator returns a flat sequence of events, or whether it can return nested event iterators- Specified by:
isFlatSequence
in interfaceEventIterator
- Returns:
- true if the next() method is guaranteed never to return an EventIterator
-
-