This watch implements xsl:for-each in streaming mode, in the case where the select expression is a
pattern that selects events from the streamed input, but the body of the for-each does no further
downwards navigation, and delivers composed items to an ItemFeed acting as the parent expression of the for-each.
It watches for the nodes selected by the xsl:for-each instruction; when such a node is encountered, it
evaluates the body expression and passes its result to the parent feed.
As well as an xsl:for-each instruction, this class also supports a path expression compiled as a SlashExpression,
that is, one where the right-hand operand delivers atomic values.
The watch is capable of handling a select expression that selects non-peer nodes (that is, one selected node
that is a descendant of another). A top-level selected node is processed directly to the output receiver;
a nested node is processed to create a temporary result tree, which is then appended to the output sequence
when the processing of the outer selected node is complete.
Signal that an element has been found that matches the selection that this
Watch is looking for. This method is called by the WatchManager while
processing the startElement event that matches the selection. For this purpose,
any attributes selected by the last step in the selection are ignored
node - the element or document node whose start event has been matched
locationId - the location associated with the element or document node (may be
the location of the instruction that created it)
a Receiver to be notified of all events starting with the startElement/startDocument event
for the matched element, and ending with the endElement event for that element; or null if this
feature is not required.
ValidationException - May be raised if the constraint implemented by this
Watch is violated @param locationId