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>