[xsl] XSLT Streaming: What is the rationale for the rule that a child can be processed only once?

Subject: [xsl] XSLT Streaming: What is the rationale for the rule that a child can be processed only once?
From: "Costello, Roger L." <costello@xxxxxxxxx>
Date: Sun, 27 Oct 2013 09:30:48 +0000
Hi Folks,

XSLT streaming has this rule:

	XSLT code cannot process a child
	element more than once.

I seek to understand the rationale for this rule.

I think the rationale is this:

Imagine a child element that contains a lot of stuff and has a very deep
subtree. The first time the child is referenced, the XSLT processor moves
forward in the XML, through the deep subtree. If the child is allowed to be
referenced again, the XSLT processor would need to "back up" in the XML,
potentially a long ways. In streaming we want to keep moving forward, without
any backing up.

Is that correct? Is that the rationale for not allowing a child to be
processed more than once?

/Roger

Current Thread