xsl-list
[Top] [All Lists]

RE: XSLT 2.0 and implementation of fn:idref in Saxon 7.9

2004-03-15 04:24:45
No, the idref() function operates fine (at least in Saxon) with DTD-defined
IDREF and IDREFS attributes. The need to determine which attribute contains
the IDREF exists just as much in a DTD world as a schema world. The only
thing that schema adds is the ability for element content (as distinct from
attributes) to be typed as an ID or IDREF(S).

Michael Kay

# -----Original Message-----
# From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-
# list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
David(_dot_)Pawson(_at_)rnib(_dot_)org(_dot_)uk
# Sent: 15 March 2004 10:50
# To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
# Subject: RE: [xsl] XSLT 2.0 and implementation of fn:idref in Saxon 7.9
# 
# Rather too subtle for me.
#   This appears to me to be a move away from 'simple' DTD based XML,
#    to an xsd model of ID+IDREF?
# 
#    What about operating on a DTD based valid instance which has
#    idrefs and id's correctly defined in the DTD?
# 
#    Ignored I guess?
# 
#     Another trip wire for the unwary?
# 
# regards DaveP
# 
#     # 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
# 
# 
# -
# DISCLAIMER:
# 
# NOTICE: The information contained in this email and any attachments is
# confidential and may be privileged. If you are not the intended
# recipient you should not use, disclose, distribute or copy any of the
# content of it or of any attachment; you are requested to notify the
# sender immediately of your receipt of the email and then to delete it
# and any attachments from your system.
# 
# RNIB endeavours to ensure that emails and any attachments generated by
# its staff are free from viruses or other contaminants. However, it
# cannot accept any responsibility for any  such which are transmitted.
# We therefore recommend you scan all attachments.
# 
# Please note that the statements and views expressed in this email and
# any attachments are those of the author and do not necessarily represent
# those of RNIB.
# 
# RNIB Registered Charity Number: 226227
# 
# Website: http://www.rnib.org.uk
# 
#  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list