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.