document() and node identity

The specification does not state whether two invocations of the document()
function always return distinct node-sets, or whether there are
circumstances in which two invocations can return the same node-set (or two
node-sets containing the same nodes, which amounts to the same thing). If
the latter, it needs to say what those circumstances are: e.g. only when the
URL is identical.

Of course, if the two invocations with the same URL return distinct
node-sets, [that is, if count(document("fred.xml") | document("fred.xml"))
!= count(document("fred.xml"))] then document() is not a pure function, and
the specification needs to say something about how often it is evaluated,
e.g. if it is referenced in a global variable or in a template match
pattern.

Two possible solutions:
- specify that two invocations of document() return the same node set iff
they have exactly the same URL arguments
- leave it all implementor defined.

Presumably there is no wish to get into a deeper definition of URL
equivalence.

Mike Kay

Received on Tuesday, 24 August 1999 16:08:46 UTC