XML Linking Language (XLink) and XML Pointer Language (XPointer)
augment the flexibility of the
XML (Extensible Markup Language) standard.
According to the W3C,
"[XLink] offers XML
authors an advanced hyperlinking mechanism. In addition to an
extensible linking semantics, XLink supports annotation services
and precise addressing of subresources when using XPointers."
Essentially, XLink provides a way to associate powerful linking capabilities
to XML elements with arbitrary names. XLink describes how simple uni-directional links
(a la HTML) as well as more sophisticated multi-directional links can be added to
XML documents. XPointer specifies a mechanism for pointing to arbitrary chunks (fragments)
of a target document, even when the original author of the target document did not
provide fragment identifiers (e.g., "some_target.html#section2").
XLink and XPointer are based in part on two mature standards from the publishing world,
Text Encoding Initiative (TEI) and Hypermedia/Time-based Structuring Language (HyTime).
Eve Maler's short, updated overview
describes the features, benefits, and basic technical details of XML linking
technologies, including links, arcs, XPointers, relationship to XPath, etc.
Includes a code example which works in Netscape 6.
An older version of this article,
XML Linking: An Executive Summary,
is still available.
(Eve Maler, formerly with ArborText, now works for Sun Microsystems. She is a
co-chair of the W3C's XML Linking working group and is co-editor of the W3C XLink and
XPointer specifications. Her
XML 2000 XLink and XPointer presentation
is covered on WDVL.)
Steve DeRose (Inso Corp. and Brown University ) is the other co-author of XLink and XPointer
specifications. This introduction nicely summarizes the extra capabilities that both XLink and
XPointer will provide. It was last updated Sept. 1999,
so the articles by Eve Mahler (above) and Fabio Arciniegas A. (below)
are much more up-to-date.
This XML.com article from Jan. 2001 explains the controversy concerning a
1997 Sun Microsystems patent, "Method and system for
implementing hypertext scroll attributes" which threatens to halt
final acceptance of the
XPointer,
which was demoted from
a Candidate Recommendation (June 2000) to a
Last Call Working Draft (Jan. 2001).
As of Sept. 2001, XPointer regained its Candidate Recommendation status.
This is the W3C Linking home page which provides abstracts and links for
XPointer, XBase, and XLink. Also included are links to
documentation and associated resources, W3C status, and implementations.
The current XLink spec is called the
XML Linking Language (XLink) Version 1.0 Recommendation
from the World Wide Web Consortium (W3C). It became a W3C Recommendation
on June 27, 2001 after having achieved sufficient implementations.
The W3C abstract states that XLink
"allows elements to be inserted into XML documents in order to create and
describe links between resources. It uses XML syntax to create structures
that can describe links similar to the simple unidirectional hyperlinks of
today's HTML, as well as more sophisticated links."
See related XLink W3 documents:
XML Base - defines
xml:base attribute used by XLink and other specs to locate relative URIs
The current XPointer spec is called the
XML Pointer Language (XPointer) Version 1.0
Candidate Recommendation
from the W3C. XPointer became first a Candidate Recommendation on June 7, 2000,
but moved backwards to Last Call Working Draft status in January 2001
due to some implementation and patent problems. The spec regained its
Candidate Recommendation status on that fateful day, September 11, 2001.
According to the abstract from the spec,
"XPointer, which is based on the
XML Path Language (XPath), s supports
addressing into the internal structures of XML documents and external
parsed entities. It allows for examination of a hierarchical document
structure and choice of its internal parts based on various properties,
such as element types, attribute values, character content, and relative
position."
See related XPointer W3 documents:
From the XML Activity page of the W3C:
"The XML Linking Working Group is designing hypertext links for XML.
Engineers defining the way that links are to be written in XML have made
a distinction for links between objects - "external" links, and "internal"
links to locations within XML documents, and both types will receive
detailed treatment by this group. The objective of the XML Linking
Working Group is to design advanced, scalable, and maintainable
hyperlinking and addressing functionality for XML."
There is no separate XPointer Working Group.
While it's still a little early to find lots of mature tools that support the
XLink Recommendation and XPointer Candidate Recommendation, one noteworthy product is
X2X from empolis
(formerly Step UK); creation, management and manipulation of links.
For other XLink/XPointer software, see
According to the author, Gabe Beged-Dov, XArc, an unofficial proposal to the web community for open review,
"is a very simple specification for describing directed labeled graphs in XML.
The XArc construct provides the minimal support necessary for this task. Using XArc
it is then possible to emulate both the XML Linking Language (XLink) and the
Resource Description Framework (RDF)."
Text Encoding Initiative (TEI), is an "international project to develop guidelines
for the preparation and interchange of electronic texts for scholarly research".
Text Encoding Initiative Guidelines (TEI P3) provides a formal syntax for location
specifiers for structured data, graphics, and other data, relevant to XPointer.
The XPointer language is based on TEI extended pointers.
TEI P3 also provides structures for creating links, aggregate
objects, and link collections, all of which are relevant to XLink.
Hypermedia/Time-based Structuring Language (HyTime) is an effort of
ISO (the International Organization for Standardization) and IEC
(the International Electrotechnical Commission).
HyTime defines location specifier types for all kinds of data, which is relevant to XPointer.
HyTime also defines inline and out-of-line link structures and some semantic features,
including traversal control and presentation of objects, which is a basis for XLink.
Technical discussions of both XLink and XPointer for developers, established Dec. 1998.
To subscribe, send a message to:
majordomo@fsc.fujitsu.com
In the body of the message put:
subscribe xlxp-dev
Post messages to: xlxp-dev@fsc.fujitsu.com
Submit additions or corrections to Ken Sall
for consideration.