streaming vs p:iteration-size()

I've been reading the xproc spec today.  I'm really excited, because I had
actually started implementing something with a similar flavor (with
pipelines and actions instead of pipelines and steps, but hey) and then
realized xproc was going to basically do pretty much everything that I
wanted, and save me lots of time, so thanks to all your all hard work,
specifiers and implementers!
 
Naturally I have some questions.. Now I hope these questions haven't all
been thrashed out in great detail on this list before, but I am catching up
and it was more than I could do to read *all* the posts, so please bear with
me.
 
It seems as if support for streaming implementations was a major
consideration in the design of xproc.  I wonder if the requirement to
support p:iteration-size() in the context of p:for-each and p:viewport isn't
at odds with the ability to create a streaming implementation though.  For
example, wouldn't an implementation be required to count all the matches,
thus parsing the entire document, before processing any of them?
 
I haven't looked through any implementations to see what's going on there,
but this seems designed in to the spec anyway. Am I missing something?
 
-Mike

Received on Thursday, 4 June 2009 10:25:11 UTC