#
# Did I misunterstand the meaning of the fn:idref (Finds the elements that
# link to the element with a given ID value i.e. This function allows
# reverse navigation from IDs to IDREFs.) ?
Yes, you misunderstood it. The spec says: A node references an ID value if
it is an element or attribute node whose type is xs:IDREF or xs:IDREFS. So
if you have an attribute of type xs:IDREFS, then the idref() function will
return that attribute, not the element containing it.
The reason for this is that you can have several IDREF attributes on an
element, e.g.
<person id="id005" father="id001" mother="id002"/>
You want to know not only that person id005 has a reference to id001, but
which attribute contains this reference. You can always get the element node
if you want, just use idref($x)/..
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list