net.sf.saxon.evpull
Class ComplexContentProcessor
java.lang.Object
net.sf.saxon.evpull.ComplexContentProcessor
- EventIterator, PullEvent
public class ComplexContentProcessor
extends java.lang.Object
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.
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.
|
isFlatSequence
public boolean isFlatSequence()
Determine whether the EventIterator returns a flat sequence of events, or whether it can return
nested event iterators
- isFlatSequence in interface EventIterator
- 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.
- next in interface EventIterator
- the next event, or null when the sequence is exhausted