- From: Alex Milowski <alex@milowski.org>
- Date: Mon, 02 Oct 2006 10:02:48 -0700
- To: public-xml-processing-model-wg@w3.org
Erik Bruchez wrote: > > Alex Milowski wrote: > > > > For both the 'viewport' and 'foreach' step containers, I think we > > need a simple statement in the document that says that inputs > > consumed by steps that aren't the subject of the iteration are > > consider "constant" during the iteration. Contained steps should > > receive the same document for each iteration. > > Agreed. > > > This all means that static resources (e.g. those pointed to with > > an 'href') can't change during pipeline execution and be > > considered as part of the computation. > > Consider an iteration that: > > o Stores a document into eXist as a step of the iteration > > o Retrieves the updated version from eXist using the eXist REST API > during the next iteration, with an HTTP URI like: > > http://example.org/exist/rest/db/latest.xml It isn't the URI label to document that remains constant. It is the input mapping that remains constant. > In this case, the document retrieved with that HTTP URI would need to > be up to date during each iteration. In other words, while the URI is > static, the document is not static, and I think it would be wrong in > this use case to require that it be static. And if you want it to be > constant for the iteration, you have a simple workaround: you can > retrieve the resource outside p:for-each! I think that way "leads to madness". > Also, requiring all static URIs to be constant requires the > implementation to use a sort of cache, even for "file:" URIs. I am not > sure that this is necessary. The consequence of not having this is that during iteration the results from two different applications of the subp-ipeline could inexplicable be different unless you knew that "the world changed" during execution. Given that execution times will generally be short, this is really going to confuse the user. If you want to "retrieve" a document during execution of a sub-pipline as part of an iteration, you should use some kind of "load" step to ensure that you have the most current version of the resource. That allows the intent of the author to be explicitly encoded in the pipeline. --Alex Milowski
Received on Monday, 2 October 2006 17:03:11 UTC