This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
The specification of collection() contains some careful language about determinism: <quote> By default, this function is ·deterministic·. This means that repeated calls on the function with the same argument will return the same result. However, for performance reasons, implementations may provide a user option to evaluate the function without a guarantee of determinism. The manner in which any such option is provided is ·implementation-defined·. If the user has not selected such an option, a call to this function must either return a deterministic result or must raise a dynamic error [err:FODC0003]. </quote> There is no similar language for uri-collection(). As currently written, uri-collection() is required to be deterministic, full stop. Perhaps this was done on the basis that caching a set of URIs for future use of the same collection URI is used again is more affordable than caching all the documents that result from dereferencing these URIs. However, having different rules makes life difficult for an implementation that wants to keep the implementations of collection() and uri-collection() closely aligned, perhaps by implementing collection() as uri-collection()!doc(.). I think there is a strong case for adding the paragraph quoted above to the uri-collection() specification.
This change was agreed on 6 Jan 2015 and has been applied to the spec.