net.sf.saxon.evpull

Class ComplexContentProcessor

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:

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

ComplexContentProcessor(Configuration config, EventIterator base)

Method Summary

boolean
isFlatSequence()
Determine whether the EventIterator returns a flat sequence of events, or whether it can return nested event iterators
PullEvent
next()
Get the next event in the sequence.

Constructor Details

ComplexContentProcessor

public ComplexContentProcessor(Configuration config,
                               EventIterator base)

Method Details

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 interface EventIterator
Returns:
true if the next() method is guaranteed never to return an EventIterator

next

public PullEvent next()
            throws XPathException
Get the next event in the sequence. This will never be an EventIterator.
Specified by:
next in interface EventIterator
Returns:
the next event, or null when the sequence is exhausted
Throws:
XPathException - if a dynamic evaluation error occurs