This specification defines the XML Linking Language (XLink), which allows elements to be inserted into XML documents in order to create and describe links between resources.
XLink provides a framework for creating both basic unidirectional links and more complex linking structures. It allows XML documents to:
Assert linking relationships among more than two resources
Associate metadata with a link
Express links that reside in a location separate from the linked resources
An important application of XLink is in hypermedia systems that have hyperlinks. A simple case of a hyperlink is an HTML A
element, which has these characteristics:
The hyperlink uses IRIs as its locator technology.
The hyperlink is expressed at one of its two ends.
The hyperlink identifies the other end (although a server may have great freedom in finding or dynamically creating that destination).
Users can initiate traversal only from the end where the hyperlink is expressed to the other end.
The hyperlink's effect on windows, frames, go-back lists, style sheets in use, and so on is determined by user agents, not by the hyperlink itself. For example, traversal of A
links normally replaces the current view, perhaps with a user option to open a new window.
This set of characteristics is powerful, but the model that underlies them limits the range of possible hyperlink functionality. The model defined in this specification shares with HTML the use of IRI technology, but goes beyond HTML in offering features, previously available only in dedicated hypermedia systems, that make hyperlinking more scalable and flexible. Along with providing linking data structures, XLink provides a minimal link behavior model; higher-level applications layered on XLink will often specify alternate or more sophisticated rendering and processing treatments.
Integrated treatment of specialized links used in other technical domains, such as foreign keys in relational databases and reference values in programming languages, is outside the scope of this specification.
For languages, such as [CSS], that wish to identify hypertext links in a document, we suggest that any local element from which XLink specifies that traversal is possible, and which the application treats as if it specified actuate="onRequest"
, be treated as a hyperlink source anchor.
The design of XLink has been informed by knowledge of established hypermedia systems and standards. The following standards have been especially influential:
HTML [HTML]: Defines several element types that represent links.
HyTime [ISO/IEC 10744]: Defines inline and inbound and third-party link structures and some semantic features, including traversal control and presentation of objects.
Text Encoding Initiative Guidelines [TEI]: Provides structures for creating links, aggregate objects, and link collections.
Many other linking systems have also informed the design of XLink, especially [Dexter], [FRESS], [OHS], [MicroCosm], and [Intermedia].
See the XLink Requirements Document [XLREQ] for a thorough explanation of requirements for the design of XLink.