Subject: RE: XSLT 2.0 and implementation of fn:idref in Saxon 7.9
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Sat, 13 Mar 2004 22:40:28 -0000
|
#
# 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
|