[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Andrew Welch" <andrew.j.welch@g...>
  • To: "Michael Kay" <mike@s...>
  • Date: Tue, 23 Sep 2008 10:30:14 +0100

> 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/


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member