[Archive copy mirrored from: http://www.textuality.com/sgml-erb/mprdv.html]
Hyperlinking and XML: |
The Web is the largest working hypermedia instance. It supports one widely-used form of hyperlink, the <A> or Anchor element. These links are unidirectional and [this is a basic design principle of the web] specify basically nothing about their target except its location. The links carry no typing or role information, beyond the unconstrained text that may be found between the <A> and </A> tags. HTML offers another hyperlink facility, the LINK header element, but it is not widely used.
Web links support a variety of behaviors, governed by the interaction of the "scheme" part of the URL (http:, file:, ftp:, mailto:) and the logic in the "User Agent" (typically a browser). It might be argued that there are really a smaller number of behaviors (a) retrieve and display, (b) retrieve and save, (c) send mail; but the number of behaviors exceeds one.
There are a variety of other standards that support hyperlinks, of which the most visible are HyTime, part of TEI, and in the area of object naming, the IETF URN work. None of these, at this moment, has overwhelming market acceptance, or credibility at the level enjoyed by SGML. HyTime has ISO's blessing, URN has the IETF's; TEI is used to encode many billions of bytes of text.
The minimal deliverable is a smallish document (smaller than the XML spec) with an independent existence and name - for example, XHA for Extensible Hyperlink Architecture. The hyperlinking mechanisms should be applicable to XML of course, but also to SGML and (to the extent possible) to HTML.
XHA should have no dependency on XML. However, we may choose to build special machinery into XML (reserved elements/attributes/archforms) to optimize support for XHA.
The minimum set of hyperlink constructs should:
This means that the link
The minimum set of behavior machinery should provide:
The minimum set of link role machinery should provide: