XML-LINK and IDREF

W. Eliot Kimber eliot at isogen.com
Tue Jun 3 16:58:07 BST 1997


At 12:58 PM 6/2/97 GMT, Peter Murray-Rust wrote:
>In message <0Zm96CAybpkzEwi6 at light.demon.co.uk> Richard Light writes:
>> While we're on the subject of linking, I'm intrigued about the status of
>> the IDREF attribute type in XML.
>
>Agreed.  I had thought about this as well.  It's not easy to see how
>both might be used fruitfully at the same time without confusion.
>
>Formally, my understanding of ID/IDREF is that it is part of XML-LANG and
>must be supported by XML-LANG processors ([50] Validity checks).  The IDREF
>can only point to an ID in the same document (at least how I read it).  
>Therefore one option is for implementers not to use XML-LINK and to use 
>ID/IDREF for whatever purposes they wish (structural, annotation, and
>with whatever behaviour.)  Although I'm not an SGML expert I imagine this
>is frequently done already.

There are two problem with IDREFS and XML:

1. Without DTDs, it may not be possible to know what attributes are IDs and 
   which are references.  

2. IDREFs provide no direct way to address elements in other documents.
Therefore,
   if you want to enable IDREFs, you have to provide some indirection
mechanism
   that can transform an IDREF to an address into other documents.  This is
what
   HyTime and the TEI do by providing various location address element
forms.  If you don't do
   this, then you require documents to have different element types for
elements
   that use IDREFs and elements that don't.  This has the effect of
necessarily binding 
   element types to the forms of address they use, which should not
normally be
   necessary (because addressing is distinct from the semantics of
reference and
   therefore shouldn't necessarily influence the element type).

Unless I've misunderstood the current spec, XML Link doesn't provide any
ID-based
indirection method, so that pretty much elimitates direct ID reference in the
general case.  [However, using the pointer syntax, you can address elements
with 
IDs, but only through the use of an XML Link URL.]

Indirect addressing certainly complicates the processing--it requires you
to build
recursive processes and may impose significant processing overhead. On the
other
hand, indirect addressing is very powerful and lets you do things that are 
difficult or impossible otherwise, especially in terms of managing links and
addresses automatically, largely because you can isolate initial references
from
the details of the addresses of the things referenced.

Cheers,

E.
--
<Address HyTime=bibloc>
W. Eliot Kimber, Senior Consulting SGML Engineer
Highland Consulting, a division of ISOGEN International Corp.
2200 N. Lamar St., Suite 230, Dallas, TX 95202.  214.953.0004
www.isogen.com
</Address>

xml-dev: A list for W3C XML Developers
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To unsubscribe, send to majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
List coordinator, Henry Rzepa (rzepa at ic.ac.uk)




More information about the Xml-dev mailing list