> A call to position() is allowed, but always returns 1. This is because
> position() returns the value of context position in the dynamic context,
> which is defined in XSD 1.1 section 3.13.4.2 to take the value 1.
>
> I'm afraid it's a common misunderstanding that position() is somehow related
> to the number of preceding siblings that a node has.
:)
count(.|preceding-sibling::*)
instead then...?
The common misunderstanding likely comes from the default processing
inbuilt into XSLT, where position() will return a child's position
amongst its siblings.
It could maybe be split into 3 functions:
position() - the position of the node amongst the selected nodes to
process, as it is now
sibling-position() - the position of the node amongst its siblings
document-position() - the position of the node within the document
That would prevent any confusion...
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/