The Cover PagesThe OASIS Cover Pages: The Online Resource for Markup Language Technologies
SEARCH | ABOUT | INDEX | NEWS | CORE STANDARDS | TECHNOLOGY REPORTS | EVENTS | LIBRARY
SEARCH
Advanced Search
ABOUT
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

NEWS
Cover Stories
Articles & Papers
Press Releases

CORE STANDARDS
XML
SGML
Schemas
XSL/XSLT/XPath
XLink
XML Query
CSS
SVG

TECHNOLOGY REPORTS
XML Applications
General Apps
Government Apps
Academic Apps

EVENTS
LIBRARY
Introductions
FAQs
Bibliography
Technology and Society
Semantics
Tech Topics
Software
Related Standards
Historic
Last modified: July 07, 2006
XML Linking Language

Introduction

The W3C XML Linking Working Group. 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. The principal draft specifications include the XML Linking Language (XLink), XML Pointer Language (XPointer), and XML Base. These represent the basis on which the work of the Linking WG will proceed. The XML Path Language (XPath) is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer; it represents a joint work of the XSL Working Group and the XML Linking Working Group. The XML Linking Working Group Co-Chairs are [2000-07] Eve Maler (Sun), Daniel Veillard (W3C). Ron Daniel of Datafusion serves as the XML Linking Interest Group chair. Previously the Co-Chairs of the XML Linking WG were Bill Smith (Sun Microsystems) and Tim Bray (Textuality)." For other references, see 'XML Linking Working Group.'

Status October 1999: As of October 8, 1999, XML linking and addressing mechanisms are described in three W3C specifications: XPath, XPointer, and XLink. XLink proper provides linking mechanisms: facilities for asserting multidirectional (as well as unidirectional) link relationships between resources, for annotating links, for out-of-line links, and extended link sets. Xpath, used by XSLT and XPointer, supports specification of locations in XML documents in terms of nodes and node lists. XPointer builds upon XPath to support specification of locations for the "internal structures" of XML documents such as character strings and selections.

  • XLink (XML Linking Language) "specifies constructs that may be inserted into XML resources to describe links between objects. It uses XML syntax to create structures that can describe the simple unidirectional hyperlinks of today's HTML as well as more sophisticated multi-ended and typed links."

  • XPointer (XML Pointer Language) "specifies a language that builds upon the XML Path Language (XPath), to support addressing into the internal structures of XML documents. In particular, it provides for specific reference to elements, character strings, selections, and other parts of XML documents, whether or not they bear an explicit ID attribute, using traversals of a document's structure and choice of parts based on their properties such as element types, attribute values, character content, and relative position, containment, and order. XPointer defines the meaning of the 'selector' or 'fragment identifier' portion of URIs that locate resources of MIME media types 'text/xml' and 'application/xml'."

  • XPath (XML Path Language) "is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer. XPath is the result of an effort to provide a common syntax and semantics for functionality shared between XSL Transformations and XPointer. The primary purpose of XPath is to address parts of an XML document. In support of this primary purpose, it also provides basic facilities for manipulation of strings, numbers and booleans. XPath uses a compact, non-XML syntax to facilitate use of XPath within URIs and XML attribute values. XPath operates on the abstract, logical structure of an XML document, rather than its surface syntax; it models an XML document as a tree of nodes as described in [5 Data Model]. XPath gets its name from its use of a path notation as in URLs for navigating through the hierarchical structure of an XML document."

  • XML Base proposes syntax for providing the equivalent of HTML BASE functionality generically in XML documents by defining an XML attribute named xml:base.

Historical Note: As of March 1998, the W3C effort and corresponding specifications for XML linking and pointing/addressing mechanisms formerly subsumed under the name "Extensible Linking Language (XLL)" were provisionally renamed XLink. As of June 1998, it appeared that the label "XLL" would persist, and perhaps become the name of a new Working Group for XML linking. The XLL design work has already been subdivided into two components: XLink (proper) and XPointer. Earlier information about XLink and XPointer under the name "Extensible Linking Language (XLL)" may be found via the primary XML Page.

XLL as a broad term for XML hyperlinking (linking and addressing) has two major components: XLink and XPointer [now three: also XPath].

  1. XLink (proper) is currently defined in the W3C Working Draft document XML Linking Language (XLink), W3C Working Draft 20-December-1999. The 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. It uses XML syntax to create structures that can describe the simple unidirectional hyperlinks of today's HTML as well as more sophisticated links."

  2. XPointer, the companion specification, defines a language which is expected to be used with XLink. The current draft for XPointer is also a W3C Working Draft, XML Pointer Language (XPointer), WD-xptr-19980303. This specification defines "constructs that support addressing into the internal structures of XML documents. In particular, it provides for specific reference to elements, character strings, and other parts of XML documents, whether or not they bear an explicit ID attribute."

A related W3C document released as a 'NOTE' "explicates the design principles behind the XLink language and its related XPointer language"; see "XML Linking Language (XLink) Design Principles." The two working drafts and the design document have been edited by Eve Maler (ArborText) and Steve DeRose (Inso Corp. and Brown University).

In an overview of XLink and XPointer mechanisms, Eve Maler explained the relationship of XLink and XPointer as follows: "XLink governs how you insert links into your XML document, where the link might point to anything (e.g., a GIF file); XPointer governs the fragment identifier that can go on a URL when you're linking to an XML document, from anywhere (e.g., from an HTML file).

Inso Corporation's white paper Publishing the Documents of the Future Today says that "the XML Linking Specification calls for not only simple one-way hypertext links, but also:

  • Multi-directional links - HTML only provides for one-way links; using the 'Go Back' button on the browser is the only way to return to the location of the original link. With a two-way link, for example, users can return to the original location via a corresponding link at the first link's destination.
  • Links with multiple destinations - Users may be able to choose between different destinations from a single link.
  • Placing content inline from a linked document - HTML only provides one-way links to entire documents or specific places in entire documents. XLL provides for placing content directly into the document being viewed without user intervention. For example, if a user is viewing a document on chemical compounds, the document may have a section on fructose that was placed in the document from an entirely different website.
  • Replacing content inline from a linked document - XLL also provides for replacing content inline with updated content from another document.
  • Databases for organizing link locations - Currently HTML links rely upon fixed machine and file system addresses to find information. XLL provides the framework for link databas to store these addresses. When kept up-to-date, link databases will free HTML publishers from maintaining frequently changing link locations."


Specifications

[CR: 20021220]

Current Specifications

XLink

  • [April 29, 2005]   First Public Working Draft for XML Linking Language (XLink) Version 1.1.    The W3C XML Core Working Group has produced a First Public Working Draft for XML Linking Language (XLink) Version 1.1 and requests feedback from W3C Members and other interested parties. XLink Version 1.0 was approved as a W3C Recommendation in June 2001. The XLink Version 1.1 Working Draft defines mechanisms to allow markup constructs "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." Background information on this revision is published in a January 2005 Note Extending XLink 1.0, edited by Norman Walsh. The Note recognizes that XLink has been adopted by several markup vocabularies since its publication as a Recommendation, but "the current trend to migrate from DTD-based validation to schema-based validation poses additional challenges that could hamper its continued adoption." Four small changes in XLink Version 1.0 were identified which could "make XLink easier to use, reduce XLink's dependence on annotations provided by external grammars (XML DTDs or XML Schema, for example), and increase interoperability by reducing the risk of markup errors or misinterpretations." The proposed changes in Extending XLink 1.0 were: (1) to make simple XLinks an application-level default; (2) to reserve all attributes in the XLink namespace; (3) to allow Internationalized Resource Identifier [IRIs], not just URIs, to be used to identify XLink properties; (4) to provide Sample XML Schema and RELAX NG Grammars. The Version 1.1 specification now "implements all of the XLink 1.1 requirements documented in the W3C Note Extending XLink 1.0. XLink is not without its critics and the changes in this specification do not address all of the criticisms that have been leveled at XLink. But these changes do make XLink more useful in the places where it is already being used and make it practical in a variety of similar vocabularies."

  • [June 27, 2001] XML Linking Language (XLink) Version 1.0. W3C Recommendation 27-June-2001. This Rec version URL: http://www.w3.org/TR/2001/REC-xlink-20010627/. Latest version URL: http://www.w3.org/TR/xlink/. Edited by Steve DeRose (Brown University Scholarly Technology Group), Eve Maler (Sun Microsystems), and David Orchard (Jamcracker). Abstract: "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. 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 also the mailing list archives for 'www-xml-linking-comments' and XLink (REC) errata. [cache]

  • [December 20, 2000] XML Linking Language (XLink) Issued as W3C Proposed Recommendation. On December 20, 2000, the W3C published Proposed Recommendation specifications for XLink and XML Base. XML Linking Language (XLink) Version 1.0 [W3C Proposed Recommendation 20-December-2000] has been edited by Steve DeRose (Brown University Scholarly Technology Group), Eve Maler (Sun Microsystems), and David Orchard. The XLink 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. 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. XLink provides a framework for creating both basic unidirectional links and more complex linking structures. It allows XML documents to: (1) Assert linking relationships among more than two resources; (2) Associate metadata with a link; (3) Express links that reside in a location separate from the linked resources... Using XLink potentially involves using a large number of attributes for supplying important link information. In cases where the values of the desired XLink attributes are unchanging across individual instances in all the documents of a certain type, attribute value defaults (fixed or not) may be added to a DTD so that the attributes do not have to appear physically on element start-tags... This specification defines only attributes and attribute values in the XLink namespace. There is no restriction on using non-XLink attributes alongside XLink attributes. In addition, most XLink attributes are optional and the choice of simple or extended link is up to the markup designer or document creator, so a DTD that uses XLink features need not use or declare the entire set of XLink's attributes. Finally, while this specification identifies the minimum constraints on XLink markup, DTDs that use XLink are free to tighten these constraints. The use of XLink does not absolve a valid document from conforming to the constraints expressed in its governing DTD."

  • [July 03, 2000] The W3C specification XML Linking Language (XLink) Version 1.0 has been promoted to the status of Candidate Recommendation. Reference: W3C Candidate Recommendation 3-July-2000. Edited by Steve DeRose (Brown University), Eve Maler (Sun Microsystems), David Orchard, and Ben Trafford (Yomu).

  • [February 21, 2000] Last Call Working Draft for the XML Linking Language (XLink). The W3C XML Linking Working Group has released a last call working draft document for the XML Linking Language (XLink). Reference: W3C Working Draft 21-February-2000, edited by Steve DeRose (Brown University), Eve Maler (Sun Microsystems), David Orchard (IBM Corp.), and Ben Trafford. The last call review period ends 20-March-2000.

  • [December 20, 1999] The XML Linking Working Group has published a new Working Draft specification for theXML Linking Language (XLink). Reference: W3C Working Draft 20-December-1999, edited by Steve DeRose (Brown University), Eve Maler (Sun Microsystems), David Orchard (IBM Corp.), and Ben Trafford (Invited Expert). This release of the specification contains a number of graphical models which visually portray important aspects of the XLink link semantics. The working draft 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. It uses XML syntax to create structures that can describe the simple unidirectional hyperlinks of today's HTML as well as more sophisticated links." This WD version, which updates the July 1999 version, is believed by the working group "to be near completion; however, a few issues remain on which the Working Group seeks public feedback." Comments on the working draft may be send via email to the editors; such comments will be publicly archived. For XLink purposes, a link is an explicit relationship between two or more resources or portions of resources. XLink provides a framework for creating both basic unidirectional links and more complex linking structures. It allows XML documents to: (1) Assert linking relationships among more than two resources; (2) Associate metadata with a link; (3) Create link databases that reside in a location separate from the linked resources. An important application of XLink is in hypertext systems. Hyperlinks are links that are meaningful to end users, often being presented to them directly for use and activation. This specification defines hypertext-specific metadata that can be associated with a link. XLink is also applicable to links that are entirely machine-processed..."

  • [August 04, 1999] Tim Bray, writing as "Co-Chair, W3C Xlink Working Group," posted a note to the XML-DEV list on August 04, 1999 to this effect: "And I don't think it's out of place to report in this venue that the XLink WG has placed itself on a very short deadline to get its long-overdue job done. Watch for a rapid succession of Working Drafts converging to a Proposed Recommendation in the immediate future."

  • [July 26, 1999] XML Linking Language (XLink). World Wide Web Consortium Working Draft 26-July-1999. This revision updates and obsoletes the previous WD published in March, 1998. Editors for this draft of XLink include Steve DeRose (Inso Corp. and Brown University), David Orchard (IBM Corp.), and Ben Trafford (Invited Expert). This WD version of XLink is open for public review, and includes a number of 'open issues' "identified at various points within the document or in the General Link Issues Appendix; a complete list of links to them is collected in the Open Issues List Appendix. Comments to the public mailing list which is archived. [local archive copy]

  • [February 24, 1999] XML XLink Requirements Version 1.0. Edited by Steven J. DeRose. W3C Note 24-Feb-1999. [local archive copy]

  • [February 24, 1999] XML XPointer Requirements Version 1.0. Edited by Steven J. DeRose. W3C Note 24-Feb-1999. [local archive copy]

  • [February 24, 1999] XPointer-Information Set Liaison Statement. Edited by Steven J. DeRose. W3C Note 24-Feb-1999. [local archive copy]

  • XML Linking Language (XLink) WD-xlink-19980303, World Wide Web Consortium Working Draft, 3-March-1998.

  • XLink 19980303, local archive copy in HTML

  • XML Linking Language (XLink) 3-March-1998. XML Format.

  • XLink 3-March-1998. XML Format, local archive copy

  • XML Linking Language (XLink) Design Principles NOTE-xlink-principles-19980303, World Wide Web Consortium Note 3-March-1998. [local archive copy]

  • Corresponding [?] XML DTD "-//W3C//DTD Specification::19980323//EN" for the XML version.

XPointer

  • [March 25, 2003]   W3C Publishes Recommendations for the XML Pointer Language (XPointer).    Three specifications from the W3C XML Linking Working Group have been released as W3C Recommendations, signifying public review and approval by W3C as stable, normative documents designed to enhance the functionality and interoperability of the Web. XPointer Framework, XPointer element() Scheme, and XPointer xmlns() Scheme are "intended to address a core subset of the original XPointer requirements, and to serve as all or a foundational part of a fragment identifier syntax for the XML Media types." The XPointer Framework specification "defines the XML Pointer Language (XPointer) Framework, an extensible system for XML addressing that underlies additional XPointer scheme specifications. The framework is intended to be used as a basis for fragment identifiers for any resource whose Internet media type is one of text/xml, application/xml, text/xml-external-parsed-entity, or application/xml-external-parsed-entity. Other XML-based media types are also encouraged to use this framework in defining their own fragment identifier languages. The XPointer element() scheme is intended to be used with the XPointer Framework to allow basic addressing of XML elements. The XPointer xmlns() scheme is intended to be used with the XPointer Framework to allow correct interpretation of namespace prefixes in pointers, for instance, namespace-qualified scheme names and namespace-qualified element or attribute names appearing within scheme data." The XPointer xpointer() Scheme specification is still a W3C Working Draft.

  • [December 19, 2002] "XPointer xpointer() Scheme." W3C Working Draft 19-December-2002. Edited by Steven DeRose (Brown University Scholarly Technology Group; Bible Technologies Group), Eve Maler (Sun Microsystems), and Ron Daniel Jr. (Taxonomy Strategies). Latest version URL: http://www.w3.org/TR/xptr-xpointer/. Previous version: http://www.w3.org/TR/2002/WD-xptr-xpointer-20020710/. A posting from Ron Daniel (Acting Chair, W3C XML Linking Working Group) announces this release of the new W3C Working Draft: "People who are interested in a fully-featured method of pointing into XML documents may wish to check it out..." Abstract: "The XPointer xpointer() scheme is intended to be used with the XPointer Framework to provide a high level of functionality for addressing portions of XML documents. It is based on XPath, and adds the ability to address strings, points, and ranges in accordance with definitions provided in DOM 2: Range... This scheme supports addressing into the internal structures of XML documents and external parsed entities. It allows for examination of a document's hierarchical structure and choice of portions based on various properties, such as element types, attribute values, character content, and relative position. In particular, it provides for specific reference to elements, character strings, and other XML information, whether or not they bear an explicit ID attribute..." Status: "This specification is one of four into which the prior XPointer specification has been divided. This version addresses comments received on the XPointer Candidate Recommendation which were relevant to the xpointer() scheme it defines. Except for responding to the relevant Last Call comments, and incorporating non-substantive editorial improvements, this documents is substantially identical to that part of the Last Call XPointer specification which is not covered by XPointer Framework, XPointer xmlns() Scheme, and XPointer element() Scheme." See the comments archive.

  • [July 11, 2002]   W3C Publishes Four Working Drafts for the XML Pointer Language (XPointer).    The W3C XML Linking Working Group has released four Working Drafts relating to XPointer. W3C XPointer "supports addressing into the internal structures of XML documents, allowing for traversals of a document tree and choice of its internal parts based on various properties, such as element types, attribute values, character content, and relative position." The four specifications refactor schemes presented in the earlier W3C Candidate Recommendation for XML Pointer Language (XPointer) Version 1.0. The XPointer Framework is "an extensible system for XML addressing and underlies additional schemes. Other XML-based media types are also encouraged to use this framework in defining their own fragment identifier languages. Many types of XML-processing applications need to address into the internal structures of XML-encoded resources using URI references, for example, the XML Linking Language (XLink), XML Inclusions (XInclude), the Resource Description Framework (RDF), and SOAP V1.2. The element() scheme allows basic addressing of XML elements, the xmlns() scheme is for interpreting namespace prefixes in pointers, and xpointer() scheme allows full XML addressing." [Full context]

  • URLs for 2002-07-10 working drafts:

  • [September 12, 2001]   XML Pointer Language (XPointer) Published as a W3C Candidate Recommendation.    The W3C XML Linking Working Group has announced the release of XML Pointer Language (XPointer) Version 1.0 as a W3C Candidate Recommendation. The CR replaces the second last-call Working Draft version of January 08, 2001, and is open for public comment through March 4, 2002. XPointer is built on top of the XML Path Language (XPath), which is an expression language underlying the XSL Transformations (XSLT) language. XPointer's extensions to XPath allow it to: (1) be used in URI references to address into resources; (2) address points and ranges as well as whole nodes; (3) locate information by string matching. XPointer supports addressing into the internal structures of XML documents and external parsed entities. It allows for examination of a document's hierarchical structure and choice of its internal parts based on various properties, such as element types, attribute values, character content, and relative position. In particular, it provides for specific reference to elements, character strings, and other XML information, whether or not they bear an explicit ID attribute. The specification defines XPointer as the language to be used as the basis for a fragment identifier for any URI reference that locates a resource whose Internet media type is one of text/xml, application/xml, text/xml-external-parsed-entity, or application/xml-external-parsed-entity." [Full context]

  • [January 08, 2001] Second 'Last Call' Working Draft. Daniel Veillard posted an announcement for W3C's release of an updated (second) last call working draft specification for XML Pointer Language (XPointer) Version 1.0. Reference: W3C Last Call Working Draft 8-January-2001, edited by Steve DeRose (Brown University Scholarly Technology Group), Eve Maler (Sun Microsystems), and Ron Daniel Jr. (Interwoven). The working draft specification "defines the XML Pointer Language (XPointer), the language to be used as the basis for a fragment identifier for any URI reference that locates a resource whose Internet media type is one of text/xml, application/xml, text/xml-external-parsed-entity, or application/xml-external-parsed-entity. XPointer, which is based on the XML Path Language (XPath), supports addressing into the internal structures of XML documents. XPointer's extensions to XPath allow it to: (1) Address points and ranges as well as whole nodes; (2) Locate information by string matching; (3) Use addressing expressions in URI references as fragment identifiers, after suitable escaping. XPointer 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. In particular, XPointer provides for specific reference to elements, character strings, and other parts of XML documents, whether or not they bear an explicit ID attribute. The structures located with XPointer can be used as link targets or for any other application-specific purpose. This specification does not constrain what uses an application may make of locations identified by XPointers. In particular, implementation of traversal to a resource is not constrained by this specification, and whether user 'traversal' is the purpose of an XPointer at all is application-dependent. A formatted-text browser traversal might scroll to and highlight the designated location; a structure-oriented graphical viewer or a document-relationship display might do traversal in quite a different way; and a search application, parser, archival system, or expert agent might use XPointers for other purposes entirely. The construction of linking elements in XML documents that associate arbitrary resources, including XML documents and portions thereof, is defined in a related specification, XLink." The Last Call period begins 8-January-2001 and ends 29-January-2001. Veillard says: "This second Last Call has been made necessary by a change required to XPointer to insure that URI References built using XPointer are context independant. This specific addition is detailed in section 5.2.1 of this XPointer Working Draft. Section 5.2.1 says, in part: "For any XPointer part that uses the xpointer scheme, the evaluation context of that part must be initialized to a set of namespace declarations consisting of a declaration of the xml prefix, bound to the URI http://www.w3.org/XML/1998/namespace, plus any namespace declarations specified by xmlns XPointer parts appearing to its left. Each xmlns part defines a namespace declaration as a prefix (NCName) and namespace URI (XPtrNsURI). In the event that two or more xmlns parts specify the same prefix, the rightmost one is used. Any xmlns parts attempting to override the xml prefix must be ignored..." Comments on the WD may be sent to the publicly archived mailing list.

  • [June 12, 2000] XPointer Specification as Candidate Recommendation. Daniel Veillard (W3C XML Linking Working Group Co-chair) announced the promotion of the W3C XML Pointer (XPointer) specification to 'Candidate Recommendation' status: XML Pointer Language (XPointer) Version 1.0. Reference: W3C Candidate Recommendation 7-June-2000, edited by Ron Daniel Jr. (Metacode Technologies, Inc.), Steve DeRose (Brown University Scholarly Technology Group), and Eve Maler (Sun Microsystems). Feedback from last call working draft has been analyzed, and the disposition of comments is available on-line. The XPointer specification "defines the XML Pointer Language (XPointer), the language to be used as the basis for a fragment identifier for any URI reference that locates a resource of Internet media type text/xml or application/xml. XPointer, which is based on the XML Path Language (XPath), supports addressing into the internal structures of XML documents. 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. . ." The XML Linking Working Group intends to "provide more information including an XPointer minimal testsuite, [which] will be published on the public page for the working group at http://www.w3.org/XML/Linking.html."

  • [December 06, 1999] The W3C XML Linking Working Group has published a 'Last call' working draft specification for XML Pointer Language (XPointer). References: W3C Last Call Working Draft 6-December-1999, edited by Steve DeRose (Brown University Scholarly Technology Group), Ron Daniel Jr. (DATAFUSION, Inc.), and Eve Maler (Sun Microsystems). The Last Call period begins 6-December-1999 and ends 27-December-1999, and the editorial team invites comment on the specification. Abstract: "This specification defines the XML Pointer Language (XPointer), the language to be used as a fragment identifier for any URI-reference that locates a resource of Internet media type text/xml or application/xml. XPointer, which is based on the XML Path Language (XPath), supports addressing into the internal structures of XML documents. It allows for traversals of a document tree and choice of its internal parts based on various properties, such as element types, attribute values, character content, and relative position."
  • [July 09, 1999] XML Pointer Language (XPointer). W3C Working Draft 9-July-1999. Edited by Steve DeRose (Inso Corp. and Brown University) and Ron Daniel Jr. (DATAFUSION, Inc.). "This document specifies a language that builds upon the XML Path Language (XPath), to support addressing into the internal structures of XML documents. In particular, it provides for specific reference to elements, character strings, selections, and other parts of XML documents, whether or not they bear an explicit ID attribute, using traversals of a document's structure and choice of parts based on their properties such as element types, attribute values, character content, and relative position, containment, and order."
  • XML Pointer Language (XPointer) WD-xptr-19980303, World Wide Web Consortium Working Draft, 03-March-1998.
  • XPointer 19980303, local archive copy in HTML
  • XML Pointer Language (XPointer) XML Format.
  • XPointer 19980303. XML Format, local archive copy
  • XML Linking Language (XLink) Design Principles NOTE-xlink-principles-19980303, World Wide Web Consortium Note 3-March-1998. [local archive copy]
  • Corresponding [?] XML DTD "-//W3C//DTD Specification::19980323//EN" for the XML version.

XML Linking and Style

[June 06, 2001]   W3C Conceptual Model for XML Linking and Style.    Members of the W3C XLink/XSL Joint Task Force (XML Linking and XSL Working Groups) have released a conceptual model specification for the interaction of XLink linking elements and styling. The document XML Linking and Style has been published as a W3C NOTE, and addresses the (hitherto unclarified) "interaction of XLink linking elements and styling." Background to the NOTE is provided in the document Introduction: "Linking and styling have significant interactions: on the one hand, style may be applied to elements because they participate in links; on the other hand, selecting a link may modify, replace, or create a new document which must then be styled. This note introduces a conceptual model for describing the interactions of XLink linking elements and styling. It then shows how this model may be applied in two different ways: (1) Using current and anticipated technologies supported by existing W3C Recommendations [and Working Drafts, Candidate Recommendations, and Proposed Recommendations]. (2) In an environment where the XSLT processor provides significantly more functionality for linking and contains several new features." Appendix B contains the (Non-Normative) "Summary of Proposed Changes to XSLT." [Full context] [cache version 2001-06-05]

XBase

[June 27, 2001] Bibliographic information for XML Base: XML Base. W3C Recommendation 27-June-2001. This Rec version URL: http://www.w3.org/TR/2001/REC-xmlbase-20010627/. Latest version URL: http://www.w3.org/TR/xmlbase/. Edied by Jonathan Marsh Microsoft). Abstract "This document proposes a facility, similar to that of HTML BASE, for defining base URIs for parts of XML documents."

[September 09, 2000] The W3C XML Linking Working Group has issued XML Base as a CR specification. Reference: W3C Candidate Recommendation 8-September-2000, edited by Jonathan Marsh (Microsoft). It "proposes a facility, similar to that of HTML BASE, for defining base URIs for parts of XML documents." The specification is considered stable by the XML Linking Working Group. The Working Group invites implementation feedback during this period. Comments on this document should be sent to the public mailing list www-xml-linking-comments@w3.org by December 8 2000. Description: "The XML Linking Language defines Extensible Markup Language (XML) 1.0 constructs to describe links between resources. One of the stated requirements on XLink is to support HTML linking constructs in a generic way. The HTML BASE element is one such construct which the XLink Working Group has considered. BASE allows authors to explicitly specify a document's base URI for the purpose of resolving relative URIs in links to external images, applets, form-processing programs, style sheets, and so on. This document describes a mechanism for providing base URI services to XLink, but as a modular specification so that other XML applications benefiting from additional control over relative URIs but not built upon XLink can also make use of it. The syntax consists of a single XML attribute named xml:base. The deployment of XML Base is through normative reference by new specifications, for example XLink and the XML Infoset. Applications and specifications built upon these new technologies will natively support XML Base. The behavior of xml:base attributes in applications based on specifications that do not have direct or indirect normative reference to XML Base is undefined."

[June 20, 2000] The XML Linking Working Group has released a second 'last call' working draft for the XML Base specification. Reference: W3C Working Draft 07-June-2000, edited by Jonathan Marsh (Microsoft). The Last Call period for this WD begins 7 June and ends 28-June-2000. XBase "proposes a facility, similar to that of HTML BASE, for defining base URIs for parts of XML documents." Description: "The XML Linking Language (XLink) defines XML constructs to describe links between resources. One of the stated requirements on XLink is to support HTML linking constructs in a generic way. The HTML BASE element is one such construct which the XLink Working Group has considered. BASE allows authors to explicitly specify a document's base URI for the purpose of resolving relative URIs in links to external images, applets, form-processing programs, style sheets, and so on. This document describes a mechanism for providing base URI services to XLink, but as a modular specification so that other XML applications benefiting from additional control over relative URIs but not built upon XLink can also make use of it. The syntax consists of a single XML attribute named xml:base. The attribute xml:base may be inserted in XML documents to specify a base URI other than the base URI of the document or external entity. The value of this attribute is interpreted as a URI Reference as defined in RFC 2396, after processing ... In namespace-aware XML processors, the "xml" prefix is bound to the namespace name http://www.w3.org/XML/1998/namespace as described in Namespaces in XML. Note that xml:base can be still used by non-namespace-aware processors. The deployment of XML Base is through normative references by new specifications, for example XLink and the XML Infoset. Applications and specifications built upon these technologies will natively support XML Base."

[February 21, 2000] A last call working draft has been published by the XML Linking Working Group for XML Base (XBase). Reference: W3C Working Draft 21-February-2000, edited by Jonathan Marsh (Microsoft). The last call review period ends 20-March-2000. The draft document "proposes syntax for providing the equivalent of HTML BASE functionality generically in XML documents by defining an XML attribute named xml:base. . . "

[December 20, 1999] New W3C Working Draft for XML Base (XBase). The W3C XML Linking Working Group has released an initial public Working Draft specification for XBase, invites comment on this draft specification. The WG's purpose in publishing this draft is to solicit feedback from the community both on the need for such a facility and the suitability of the mechanism. XML Base (XBase) (W3C Working Draft 20-December-1999) is edited by Jonathan Marsh (Microsoft). The specification "proposes syntax for providing the equivalent of HTML BASE functionality generically in XML documents by defining an XML attribute named xml:base." Rationale and description: "The XML Linking Language defines XML constructs to describe links between resources. One of the stated requirements on XLink is to support HTML 4.0 linking constructs in a generic way. The HTML BASE element is one such construct which the XLink Working Group has considered. BASE allows authors to explicitly specify a document's base URI for the purpose of resolving relative URIs in links to external images, applets, form-processing programs, style sheets, and so on. This document proposes that the functionality of BASE be provided to generic XML applications. Furthermore, it proposes that the resolution of relative URIs is not limited to the domain of XLink but is applicable to any XML application that makes use of relative URIs. In other words, this problem should be solved at the addressing (URI) level and not at the higher level of linking (XLink). This document introduces a syntax for a generic BASE functionality in XML documents by defining an xml:base attribute. The attribute xml:base may be inserted in XML documents to specify a base URI other than the base URI of the document or external entity, which is normally used to resolve relative URIs. The value of this attribute is interpreted as a URI as defined in RFC 2396. The base URI specified by xml:base sets the base URI information set property of the element on which this attribute occurs, and to its descendants except where further xml:base attributes are applied. The value of the xml:base attribute may itself be a relative URI, in which case it must itself be resolved against the base URI of the element it appears on. This base URI may have been obtained from an xml:base attribute on an ancestor element. This enables scoping behavior consistent with the xml:lang and xml:space attributes."


XPath

  • [December 21, 2001]   W3C XML Query Working Group and XSL Working Group Release XPath 2.0 Working Draft.    An initial working draft specification for the XML Path Language (XPath) 2.0 has been prepared jointly by members of the W3C XML Query Working Group and W3C XSL Working Group. XPath 2.0 defines "a language for addressing parts of an XML document, and has been derived from both XPath 1.0 and XQuery. The XPath 2.0 and XQuery 1.0 Working Drafts are generated from a common source. These languages are closely related, sharing much of the same expression syntax and semantics, and much of the text found in the two Working Drafts is identical. The primary purpose of XPath is to address parts of an XML document. XPath uses a compact, non-XML syntax to facilitate use of XPath within URIs and XML attribute values. XPath operates on the abstract, logical structure of an XML document, rather than its surface syntax. This logical structure is known as the data model, and is described in the W3C XQuery 1.0 and XPath 2.0 Data Model documents. XPath gets its name from its use of a path notation as in URLs for navigating through the hierarchical structure of an XML document." [Full context]

  • [October 18, 2000] XML Path Language (XPath) Version 1.0 Specification Errata

  • [November 16, 1999] XML Path Language (XPath) Version 1.0. W3C Recommendation 16-November-1999. Edited by James Clark and Steve DeRose. "XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer." The errata.

  • [October 8, 1999] XML Path Language (XPath) Version 1.0 Published as a W3C Proposed Recommendation. As part of the W3C Style activity and W3C XML activity, the XML Linking Working Group and XSL Working Group have published the XPath specification as a PR: XML Path Language (XPath) Version 1.0. Reference: W3C Proposed Recommendation 8-October-1999, edited by James Clark and Steve DeRose. XPath specifies a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer. "XPath is the result of an effort to provide a common syntax and semantics for functionality shared between XSL Transformations and XPointer. The primary purpose of XPath is to address parts of an XML document. In support of this primary purpose, it also provides basic facilities for manipulation of strings, numbers and booleans. XPath uses a compact, non-XML syntax to facilitate use of XPath within URIs and XML attribute values. XPath operates on the abstract, logical structure of an XML document, rather than its surface syntax. XPath gets its name from its use of a path notation as in URLs for navigating through the hierarchical structure of an XML document. In addition to its use for addressing, XPath is also designed so that it has a natural subset that can be used for matching (testing whether or not a node matches a pattern); this use of XPath is described in XSLT. XPath models an XML document as a tree of nodes. There are different types of nodes, including element nodes, attribute nodes and text nodes. XPath defines a way to compute a string-value for each type of node. Some types of nodes also have names. XPath fully supports XML Namespaces. Thus, the name of a node is modeled as a pair consisting of a local part and a possibly null namespace URI; this is called an expanded-name. The data model is described in detail in section 5, 'Data Model'." Available in both XML and HTML formats. Send comments to www-xpath-comments@w3.org until November 05, 1999; such comments are publicly archived.

XML Inclusion Proposal (XInclude) - XML Core Working Group

[March 23, 2000] XML Inclusions (XInclude) - New Working Draft Specification. The W3C XML Core Working Group has released a new working draft document XML Inclusions (XInclude), and invites comment on the specification. Reference: W3C Working Draft 22-March-2000, edited by Jonathan Marsh (Microsoft) and David Orchard (IBM). This revision updates the previous draft of November, 1999. The XInclude document "specifies a processing model and syntax for general purpose inclusion. Inclusion is accomplished by merging a number of XML Infosets into a single composite Infoset. Specification of the XML documents (infosets) to be merged and control over the merging process uses an XML-friendly syntax (elements, attributes, URI References). The general purpose inclusion mechanism is usable in well-formed but not necessarily valid XML documents." Background: "Many programming languages provide an inclusion mechanism to facilitate modularity. Markup languages also often have need of such a mechanism. This proposal introduces a generic mechanism for merging XML documents (as represented by their information sets)..." XInclude and XLink: "XInclude differs from the linking features described in the XML Linking Language, specifically links with the attribute value show="embed". Such links provide a media-type independent syntax for indicating that a resource is to be embedded graphically within the display of the document. XLink does not specify a specific processing model, but simply facilitates the detection of links and recognition of associated metadata by a higher level application. XInclude, on the other hand, specifies a media-type specific (XML into XML) transformation. It defines a specific processing model for merging information sets. XInclude processing occurs at a low level, often by a generic XInclude processor which makes the resulting information set available to higher level applications. Simple node inclusion as described in this specification differs from transclusion, which preserves contextual information such as style." XInclude and XML External Entities: There are a number of differences between XInclude and XML external entities which make them complimentary technologies. Processing of external entities (as with the rest of DTDs) occurs at parse time. XInclude operates on information sets and thus is orthogonal to parsing..." Comments on the working draft should be sent to the mailing list; such postings are publicly archived. Paul Grosso (ArborText, Co-Chair of the XML Core WG) says of the new working draft: "The XML Core WG plans to publish a Last Call Working Draft in the relatively near future, so comments about the current draft that wish to be considered for input to the Last Call draft should be submitted soon to the publicly archived comment mailing list."

[November 23, 1999] W3C XML Linking Working Group Publishes XInclude. A posting from Daniel Veillard to XML-DEV announces the publication of a W3C 'NOTE' from the XML Linking Working Group: XML Inclusion Proposal (XInclude). References: W3C Note 23-November-1999, edited by Jonathan Marsh (Microsoft) and David Orchard (IBM). The note is from the XML Linking Working Group as part of the W3C XML Activity. "The purpose of this document is to set forth a minimal set of requirements and introduce a processing model and syntax for a general purpose inclusion facility. Inclusion is accomplished by merging a number of XML Infosets into a single composite Infoset. Specification of the XML documents (infosets) to be merged and control over the merging process uses an XML-friendly syntax (elements, attributes, URI-References). The general purpose inclusion mechanism is usable in well-formed but not necessarily valid XML documents. The XML Linking Working Group has decided to publish the XInclude proposal as a W3C Note from the XML Linking Working Group. This is the result of the evolution of the show="parsed" behaviour found in early XLink Working Drafts. It was decided that this functionality would be better handled in the core XML specification. Hence, at this time, this document is for discussion purposes only." Comments should be sent to www-xml-linking-comments@w3.org.


XML Fragment Interchange [Core WG]

  • XML Fragment Interchange. Reference: W3C Working Draft 1999-June-30 [or later], edited by Paul Grosso (Arbortext) and Daniel Veillard (W3C). Abstract: "The XML standard supports logical documents composed of possibly several entities. It may be desirable to view or edit one or more of the entities or parts of entities while having no interest, need, or ability to view or edit the entire document. The problem, then, is how to provide to a recipient of such a fragment the appropriate information about the context that fragment had in the larger document that is not available to the recipient. The XML Fragment WG is chartered with defining a way to send fragments of an XML document--regardless of whether the fragments are predetermined entities or not--without having to send all of the containing document up to the part in question. This document defines Version 1.0 of the [eventual] W3C Recommendation that addresses this issue." Status: "The XML Fragment Working Group, with this 1999 June 30 Working Draft considers its charter discharged. This is the XML Fragment WG's W3C Working Draft as revised to reflect comments received during Last Call review. This draft is technically ready to go to Proposed Recommendation, but the WG decided to hold at this stage to await some implementation experience and to allow possibly related work in other WGs to progress further before submitting this draft for PR." [cache]

  • XML Fragment Interchange Requirements. W3C Note 23-Nov-1998. "The XML standard supports logical documents composed of possibly several entities. It may be desirable to view or edit one or more of the entities or parts of entities while having no interest, need, or ability to view or edit the entire document. The problem, then, is how to provide to a recipient of such a fragment the appropriate information about the context that fragment had in the larger document that is not available to the recipient. The XML Fragment WG is chartered with defining a way to send fragments of an XML document--regardless of whether the fragments are predetermined entities or not -- without having to send all of the containing document up to the part in question. This document specifies the design principles and requirements for this activity."

  • [August 11, 2000] XML Fragment Interchange status: "On 1999 Sep 25, the XML Core working group submitted an official Request to make the Fragment Interchange specification a Proposed Recommendation. This Request goes to the W3C Team and Director. Ordinarily, a response to such a Request is forthcoming within days or a couple weeks. However, in the case of the Fragment Interchange spec, the Team appears to have decided that the interest level is too low to warrant any resources be put into processing this request, so it has remained an outstanding request for almost a year. Both W3C members and the user community at large are welcome to express their opinion on the importance (or lack thereof) of this spec. To date, there has been several opportunities to do so, but no outpouring of interest by either the developer or use community, so it appears that the W3C Team's reading of the interest level is not inaccurate. [From Paul Grosso, XML-DEV, 2000-08-11.

XLink Markup Name Control

  • [October 25, 2000] W3C has published a NOTE under the title XLink Markup Name Control. Reference: W3C Note 24-October-2000, edited by [W3C XML Linking Working Group co-chairs] Eve Maler (Sun Microsystems) and Daniel Veillard (W3C). Document abstract: "This document proposes a possible XML Schema-based solution to the need to use XLink in XML-based languages such as XHTML 1.0." The note addresses the particular problem of 'namespaces' when attempting to upgrade existing document markup to be interpreted as XLink syntax. "Currently, XLink requires applications to recognize a particular set of attribute names in the XLink namespace in order to do their work... [suppose] you already have some marked-up information that provides some of the same kinds of linking information that XLink is designed to provide: in order to incorporate XLink usage directly into the existing vocabulary as a first-class construct, you would have to force the vocabulary to undergo a backwards-incompatible change from href to xlink:href. XLink's attributes must have namespace prefixes on them because of the way XML namespaces work; 'global' attributes that can be attached to any element must be prefixed because they cannot identify themselves in any other way..." The NOTE's proposed solution builds upon a suggestion from Henry Thompson of the W3C XML Schema Working Group. A future version of W3C XLink might allow applications "to take advantage of XML Schema datatypes instead, or in addition, as a way to recognize Schema-XLink data. The idea is that any attribute name could be used, as long as the attribute were 'marked' with an appropriate datatype, made available through a post-schema-validation information set or by other means. . . If Schema-XLink were to define such datatypes, it could provide a normative XML Schema module that merely contains a series of type definitions. Note, however, that as of this writing, XML Schema does not have facilities to specify additional normative constraints of the style that XLink needs; prose would still be needed to specify the combinations of attribute types that are expected to appear on particular 'XLink element types'..." [cache]

Harvesting RDF Statements from XLinks

  • [September 29, 2000] A W3C Note on XLink and RDF bears the title Harvesting RDF Statements from XLinks. Reference: W3C Note 29-September-2000, edited by Ron Daniel Jr. (Metacode Technologies Inc.). This Note is not a formal product of the W3C XML Linking Working Group, but "is made available by the W3C XML Linking Working Group for the consideration of the XLink and RDF communities in the hopes that it may prove useful." Abstract: "Both XLink and RDF provide a way of asserting relations between resources. RDF is primarily for describing resources and their relations, while XLink is primarily for specifying and traversing hyperlinks. However, the overlap between the two is sufficient that a mapping from XLink links to statements in an RDF model can be defined. Such a mapping allows XLink elements to be harvested as a source of RDF statements. XLink links (hereafter, 'links') thus provide an alternate syntax for RDF information that may be useful in some situations. This Note specifies such a mapping, so that links can be harvested and RDF statements generated. The purpose of this harvesting is to create RDF models that, in some sense, represent the intent of the XML document. The purpose is not to represent the XLink structure in enough detail that a set of links could be round-tripped through an RDF model." [Principles:] "Simple RDF statements are comprised of a subject, a predicate, and an object. The subject and predicate are identified by URI references, and the object may be a URI reference or a literal string. To map an XLink link into an RDF statement, we need to be able to determine the URI references of the subject and predicate. We must also be able to determine the object, be it a URI reference or a literal. The general principle behind the mapping specified here is that each arc in a link gives rise to one RDF statement. The starting resource of the arc is mapped to the subject of the RDF statement. The ending resource of the arc is mapped to the object of the RDF statement. The arc role is mapped to the predicate of the RDF statement. However, a number of corner cases arise, described in [Section] 3, 'Mapping Specification'. RDF statements are typically collected together into 'models.' The details of how models are structured are implementation dependent. This Note assumes that harvested statements are added to 'the current model,' which is the model being constructed when the statement was harvested. But this Note, like RDFSchema, does not specify exactly how models must be structured."

Earlier Specifications Documents

Linking July 31, 1997. An earlier W3C specification for the Extensible Linking Language is: Extensible Markup Language (XML): Part 2. Linking. Editors: tbray@textuality.comTim Bray (Textuality) and Steve DeRose (Inso Electronic Publishing Solutions). Reference identifiers: WD-xml-link-970731, W3C Working Draft July-31-97, http://www.w3.org/TR/WD-xml-link-970731.

XML-Link June 30, 1997


General: Books, Papers, Articles, FAQs for XML Linking

[CR: 20060707]

  • [July 07, 2006] Don't Break the Link: Avoid Four Costly Pitfalls in Linking and Reuse. By Brandon Jockman. Innodata Isogen White Paper. June 2006. 9 pages. Published in the Innodata Isogen Resource Cooperative. Link management plays a vital role in establishing the overall quality of an XML-based system. Too often, organizations underestimate the significance of this key requirement -- causing systems to fall short in providing the full suite of link management services required by modern enterprises. The global transition of documents into XML prompts project requirements related to authoring, singlesource/ multiple-output publication, content management and workflow. Linking traditionally refers to a simple point-to-point link, such as a hyperlink from one Web page to another or a navigable link between two pages in a PDF document. The XML Linking Language (XLink) W3C specification1 provides an XML-based linking syntax for traditional links. However, the combination of its cumbersome authoring syntax and general lack of tool support prevents it from being the most commonly used linking syntax. Other common approaches to XML linking include ID/IDREF, W3C Schema's key/keyref, or custom links. They have limitations as well. Some common XML flavors, such as XHTML and DocBook define their own link elements. To support these custom linking syntaxes, some tools provide configurable link definition systems where custom link elements can be defined along with the type of link. However, these non-standard links may not be portable between tools. Unless adequate analysis and preparation takes place, simple linking can be anything but simple in a complex system. Linking can also include other types of referencing. This type of linking is often called use-by-reference or reuse. In a reuse link, the point-to-point link relationship has a modifier specifying that content from the target location should be pulled into the source location at a given point in time. The most complete XML-based reuse mechanism is defined by the XML Inclusions (XInclude) W3C specification..." [cache]

  • [July 09, 2003] "Transclusion with XSLT 2.0." By Bob DuCharme. From XML.com (July 09, 2003). "Transclusion is a hypertext concept that began in the work of Ted Nelson, who coined the term 'hypertext'. Roughly speaking, transclusion is the inclusion of a resource, or part of a resource, potentially from anywhere in the world, within a new one. For example, the HTML img element is a form of transclusion. Nelson envisioned dynamic compound documents consisting entirely of pointers to pieces of other documents, with the compound ones automatically reflecting updates to the transcluded pieces. As he wrote in his book Literary Machines 93.1: 'Transclusion will be a fundamental service of tomorrow's literary computers, and a property of the documents they will supply. Transclusion means that part of a document may be in several places -- in other documents beside the original -- without actually being copied there.' Of course, at some level, information from one server must be copied from the transcluded document to show up on the screen of the user viewing the transcluding document; but if the copy happens at read time, every time, a compound document will still have the dynamic nature that Nelson envisioned. Has transclusion been implemented in any widely-used web technology? Transclusion-like capabilities are specified in the XInclude Candidate Recommendation, but this spec tells us that 'Simple information item inclusion as described in this specification differs from transclusion, which preserves contextual information such as style.' Even then, no XInclude implementation that I know of allows the inclusion of portions of other documents; utilities such as XIncluder only allow for the transclusion of entire documents. The XLink actuate="onLoad"/show="embed" combination describes something similar, but to my knowledge browser support for it is nonexistent... The Simplified Stylesheet Modules feature of XSLT 2.0 lets you embed an XSLT template rule in a document; if the embedded template rule calls XSLT 1.0's document() function and passes it the name of the document to transclude, the input document passed to the XSLT processor can be a dummy document... When the XSLT processors built-in the major browsers implement XSLT 2.0 as they now implement 1.0, we'll have a lot of great new possibilities to work with, including the ability to include a remote document..."

  • [June 12, 2003]   W3C Publishes Note Defining an XML Indirection Facility for XLink and XPointer.    W3C has acknowledged receipt of a technical submission from ISOGEN International describing an XML Indirection Facility. As presented in the published W3C Note, XIndirect is "a simple mechanism for using XML to represent indirect addresses in order to augment the core functionality of XLink and XPointer without requiring either of those specifications to themselves require support for indirect addresses. The facilities defined are specifically designed to meet the requirements for systems that support the authoring and management of complex systems of documents. The authors do not expected that XIndirect would be normally be used for final-form delivery of hyperdocuments, although it may have value within the context of single server or small confederation of servers." UML data model diagrams are used to represent the principal objects in the XIndirect data model, which consists of four types: Linker, Pointer, Resource, and Indirector. The document also defines a simple "XML-based representation syntax for indirectors in XML documents. This syntax uses naming conventions already in wide use in other XML specifications; in particular, it uses href as the name of the pointer attribute. An informative Appendix A supplies a sample XIndirect test implementation. This style sheet uses XSLT, the EXSLT function mechanism, and the Saxon-defined evaluate() function to resolve indirectors and produce a 'debug' report showing both the ultimate results of each non-indirect pointer as well as the location paths represented by the indirector elements in the test document set." The document editor (Eliot Kimber) has provided an extended description of XIndirect's design and development, based upon the need for a generalized, optional-use indirection mechanism.

  • [May 05, 2003] "Creating Richer Hyperlinks with JSP Custom Tags." By Amit Goel [WWW]. From the O'Reilly Network ONJava.com (April 30, 2003). "The linking mechanism currently supported by HTML (<a href="destination.html">) allows us to create hyperlinks that can have only one destination. To add context-related destinations to a hyperlink, we either need to supply them as links within parentheses (e.g., 'download PDF version,' 'download Word version,' etc.), or make the reader scroll to a different part of the page (e.g. a 'Resources' section), sometimes causing the reader to lose context. If we could somehow embed these additional destinations within a hyperlink, we could greatly enhance the usefulness of our pages. These embedded links could point to additional resources, allowing us to pack more content into the same amount of screen space while keeping related information close at hand... What is required [for multi-destination links] is a simple, declarative, tag-like syntax that is intuitive and easy to write, just like the two hypothetical constructs described above. This would allow the developer to focus on generating content instead of worrying about the programming. Before I describe my solution, I must mention that efforts are already underway to enable such sophisticated linking models for the Web. XML and its accompanying linking standards, such as XLink and XPointer -- both currently in W3C Recommendation status -- promise support for richer hyperlinking. But these advanced linking standards are still not completely supported by the popular browsers (Internet Explorer currently does not support XLink). Besides, XLink is quite complex, and can be overkill for the average web site... This article presents a simple approach to achieving multi-destination hyperlinks using a combination of JavaServer Pages (JSP) custom tags and XML... Multi-destination link functionality is new to most web users. Given the resistance among users to learn new concepts, training users on a totally new navigation metaphor can be a challenge. Therefore, the solution presented builds on an existing and familiar navigation model -- the menu. In a menu system, users can make several choices under one main topic. Depending on the choice they make, they will reach different destinations. Multi-destination links give users the choice of where they want to go, as opposed to single-destination links. This reduces the amount of time and traffic caused by searching through unrelated links. Also, storing the embedded link information separately from the HTML content document enables page creators to update these links independently of the HTML document. This opens up interesting possibilities like adaptive hypertexts -- hypertexts that change according to the user's profile, for example -- enabling the page creators to provide links that are more relevant to the user... Finally, the role of the [proposed] drop-down icon is particularly important. It visually indicates that the associated hyperlink contains additional hyperlinks, thus differentiating multi-destination links from regular single-destination links. In addition, the optional onmouseover capability eliminates the need to click on the image, reducing the need for one extra mouse click by the user... Due to the growing amount of information available on the Web, there is a great need to navigate the Web more easily. Enhancements like these cost very little and can add a lot of richness to the Web..."

  • [January 23, 2003] "The Return of XML Hypertext." By Kendall Grant Clark. From XML.com. January 22, 2003. ['Kendall Clark reports on the creation of a new mailing list focused on the use of XML for hypertext.'] "... What is XML, and what is it best for, if you've spent long hours popping and pushing HyperCard stacks? Among the places one might go for an answer to these questions, consider the newly minted xml-hypertext mailing list. The first thing one might say about xml-hypertext is that its credentials suggest that it is a trustworthy source. A brief glance through its archive is like a glance through the Who's Who of the XML community. Not only is the roster of participants a good indication of the quality of conversation, but it also suggests that the list's motivating idea is not the product of a single person, but reflects broader community interests. In announcing the xml-hypertext list, Simon St. Laurent suggested a basic agenda for the conversation; 'appropriate subjects include,' St. Laurent said, 'technologies for linking and pointing, hypertext-oriented transformations, and interactions between XML and Web infrastructure'. Among the technologies which fit that bill, St. Laurent mentioned XLink, XPointer, HLink, SkunkLink, VELLUM (one of St. Laurent's own proposed linking technologies), XHTML, RDF and Topic Maps, SMIL. It makes sense that a mailing list about XML and hypertext will focus on linking technologies, since linking is essential to every robust hypertext proposal -- computing technology has long tempted very smart people as a way to overcome what is seen to be the static nature of old-fashioned, that is, printed books While it's still early, the xml-hypertext list may turn out to be an important new chorus of voices for XML technologists to pay attention to. Going forward, its two primary technical subjects of interest are likely to be new ways of rejuvenating linking in XML applications, including the end-user Web, and (though this is more a prediction than a promise) the issue of linkbases, that is, collections of out-of-band links or relations between resources..." See the information page for xml-hypertext -- Discussion of hypertext using XML and the mail archives.

  • [January 22, 2003] A posting from Bob DuCharme references a (demo) prototype implementation for "1-to-many" links using HTML: "While reading Micah's SkunkLink proposal, I was struck by the simplicity of using an A element to represent one-to-many links in HTML. I remember seeing an argument against this somewhere, but don't remember it, so I went ahead and prototyped an implementation. If you go to http://www.snee.com/xml/linking/1toMdemo.xml you should see a page where the green links are 1-to-many links. A [browser] View Source will show that the file is basic XHMTL, except that the green links are marked up as nested 'a' links. View Source will also show that an XSLT stylesheet is used, http://www.snee.com/xml/linking/1toM.xml (1toMdemo.xml explains why the stylesheet has an 'xml' extension) that just copies all elements through but converts 'a' elements with 'a' children to menus implemented with some JavaScript code that I learned about from a Netscape DevEdge article at http://developer.netscape.com/viewsource/smith_menu/smith_menu.html. Changing the XHTML content model for the 'a' element to allow nesting of them is an awfully small change to make to its DTD. (What would you with with deeper nesting levels? Turn them into submenus.) For 1-to-many linking in more generalized linking constructs outside of XHTML (e.g., XLink and any of the successors cropping up), this combination of XSLT plus the DevEdge menuing code makes prototyping of the linking surprisingly easy..." See followups in the XML-DEV thread. See also SkunkLink: A Common Ground for XML Linking Skunkworks by Micah Dubinko (23-December-2002) and the associated posting.

  • [December 23, 2002] "SkunkLink: A Common Ground for XML Linking Skunkworks." By Micah Dubinko. 23-December-2002. "The SLink language provides a data model and syntax for XML linking, suitable for use in XHTML 2.0 and related languages... The process at the W3C that led to this document started with XLL, one of the major directions for the work to be built upon the then-new XML standard. Other W3C specifications, which involved a very large number of contributors from within and without the W3C, include the XLink Recommendation and the HLink Working Draft... This document takes a fundamental approach of expressing only the author's intent for a link, leaving other kinds of link metadata and details of link processing as application-specific. As a result, many features from XLink and HLink are not included. The criteria for determining which features to include in this document is the features must be widely appropriate to many different kinds of XML languages... This document does not define a syntax for out-of-line markup, along the lines of HLink. It would, however, be straightforward to define a mapping from RDF, meta elements, or CSS syntax, to the SLink data model..."

  • [October 22, 2002] "The XPointer xpath1() Scheme." By Simon St.Laurent (O'Reilly & Associates). IETF Network Working Group, Internet-Draft. Reference: 'draft-stlaurent-xpath-frag-00.txt'. October 20, 2002, expires April 20, 2003. Also in HTML format. "This document specifies an xpath1() scheme for use in XPointer-based fragment identifiers. This scheme, like other XPointer Framework schemes, is designed primarily for use with the XML Media Types defined in RFC 3023, to identify locations within a given XML representation of a resource. The xpath1() scheme uses XPath 1.0 syntax... As the W3C's xpointer() scheme already provides a superset of the functionality provided by the xpath1() scheme, some consideration of why the xpath1() scheme is useful seems worthwhile. The xpointer() scheme, designed to support the out-of-line linking capabilities of XLink, provides support for character ranges which may arbitrarily cross node boundaries. While this is extremely useful for many hypertext applications, it is unnecessary for a wide variety of simpler projects, and XPath 1.0 is generally far more widely supported than the xpointer() scheme. While the XPointer Framework explicitly supports multiple levels of conformance, the xpointer() scheme states that 'Conforming XPointer processors claiming to support the xpointer() scheme must conform to the behavior defined in this specification and may conform to additional XPointer scheme specifications.' Conforming xpointer() processors must implement both XPath and the xpointer() scheme's own extensions, and while applications might use only the subset of xpointer() that is pure XPath, processors built for that approach are non-conformant. The XPointer set of specifications also includes shorthand pointers (based on ID values with their own complications) and support for an element() scheme that is effectively a subset of XPath, but these offer considerably less functionality than XPath. The xpath1() scheme strikes a balance between the simple implementation but limited functionality of shorthand pointers and the element() scheme, and the complex implementation but great capabilities of the xpointer() scheme. Perhaps more importantly, it strikes that balance using processing capabilities that are already widely deployed..." Simon notes: "Future drafts will include examples, but I suspect the readers of this list know what XPath 1.0 expressions look like. This Internet-Draft has no connection to the W3C XLink WG except insofar as it builds on the XPointer Framework and uses other W3C work as references." [cache]

  • [October 03, 2002] "TAG Rejects HLink." By Kendall Grant Clark. From XML.com (October 02, 2002). ['Controversy has been brewing over the HLink linking specification from the W3C's XHTML Working Group. This week in the XML-Deviant column Kendall Clark reports on the debate surrounding the W3C Technical Architecture Group's rejection of HLink in favor of XLink.'] "TAG, the W3C's Technical Architecture Group, announced recently that XLink 'should be used for hypertext references in user-interface oriented applications', and that 'it is the unanimous opinion of the TAG that XLink should be used for hypertext references in XHTML 2.0.' The announcement seemed to directly repudiate HLink, a new linking solution for XHTML. Steven Pemberton, chair of the HTML WG, suggested that HLink and XLink were two ways of doing the same thing: 'The idea is that you can define linking on markup languages using XLink concepts, and you could even define XLink itself using HLink. [HLink] is not a divergence from XLink, but an enrichment...' The TAG suggested, further, that, 'given that MathML and SVG already use XLink for hypertext references, that would seem to be precedent for using XLink in XHTML.' To which Pemberton responded: the 'fact that SMIL doesn't use XLink would seem to be a precedent for not using XLink in XHTML.' In response to TAG's claim that creating HLink falls outside XHTML 2.0's charter -- one 'design goal' goal of which is 'to use generic XML technologies as much as possible' -- Pemberton says that ''as much as possible' was added exactly to cover XLink, because it prevents us from doing the things we want to be able to do.' The first public XHTML 2.0 Working Draft, released in early August, explicitly refused to use XLink to provide hypertext linking. That refusal was foreshadowed as early as the XLink Final Call when members of the HTML WG suggested that XLink had failed to meet some of its requirements, particularly those most related to HTML linking semantics. The TAG's repudiation touched off a wide-ranging conversation, including both W3C-procedural and purely technical issues, in the XML developer community. The publication of TAG's finding followed very quickly on the heels of the HTML Working Group's public release of HLink..."

  • [August 26, 2002] "Top Ten Tips to Using XPath and XPointer." By John Simpson. From XML.com. August 21, 2002. ['Ten tips for XML developers from the author of XPath and XPointer. John Simpson, author of XML.com's monthly XML Q&A column, is the author of the new O'Reilly book on XPath and XPointer. This first feature is Simpson's handy list of ten XPath/XPointer tips which will increase your mastery of these essential tools.'] "XPath and XPointer allow XML developers and document authors to find and manipulate specific needles of content in an XML document's haystack. From mindful use of predicates, to processor efficiency, to exploring both the standards themselves and extensions to them, this article offers ten tips -- techniques and gotchas -- to bear in mind as you use XPath and XPointer in your own work... Beware of whitespace when counting nodes; Keep an open mind about predicates: nested, 'compound,' and so on; The string-value of a node is just a special case of the string-value of a node-set; Remember the difference between value1 != value2 and not(value1 = value2); Find and use a good tool for testing your XPath expressions; Explore EXSLT; Fail-safe your XPointers; Remember to keep namespaces straight, in both XPath and XPointer applications; Don't forget processor efficiency in XPath and XPointer; Keep an eye out for spec changes..." See the book: XPath and XPointer Locating Content in XML Documents, by John E. Simpson (O'Reilly, August 2002; ISBN: 0-596-00291-2); with full description and Table of Contents.

  • [March 21, 2002] "Linking in Context." By Samhaa R. El-Beltagy, Wendy Hall, David De Roure, and Leslie Carr (Department of Electronics and Computer Science, University of Southampton, Southampton SO17 1BJ, UK). In Journal of Digital Information Volume 2 Issue 3 (March 12, 2002). This paper was first presented at ACM Hypertext 2001 in August in Aarhus, Denmark, where it won the SIGWEB Douglas Engelbart Best Paper Award. ['This paper explores the idea of dynamically adding multi-destination links to Web pages, based on the context of the pages and users, as a way of assisting Web users in their information finding and navigation activities. The work does not make any preconceived assumptions about the information needs of its users. Instead it presents a method for generating links by adapting to the information needs of a community of users and for utilizing these in assisting users within this community based on their individual needs. The implementation of this work is carried out within a multi-agent framework where concepts from open hypermedia are extended and exploited. In this paper, the entities involved in the process of generating and using 'context links' as well as the techniques they employ to achieve their tasks, are described. The result of an experiment carried out to investigate the implications of linking in context on information finding, is also provided.'] "... One of the goals of the work presented is to address the limitation of switching between linkbases according to the context of documents. Another is to enable dynamic creation of links to populate linkbases. Manual authoring of links is an expensive and inefficient process..."

  • [March 15, 2002] "XLink: Who Cares?" By Bob DuCharme. From XML.com. March 13, 2002. "... I don't mean it rhetorically. I really want to know: who out there still cares about XLink? I did care, ever since I first heard about the work on 'XML Part 2: Linking,' as it was called at the announcement of XML's existence at SGML '96. (XSL, before XSLT was split away from XSL-FO, was Part 3). I got excited at the concept of linking that was more powerful than HTML's but easier to understand than HyTime's. I looked forward to the creation of out-of-line links that connected two, three, or more resources into a single link without requiring write access to those resources. I saw how the ability to define and assign link types would ease the end user's difficulty in navigating the growing amount of connected information on the Web. I thrilled to the talk of linkbases becoming a new category of information product to buy and sell, creating new information by making intelligent connections between existing information. XLink is the only XML-related W3C specification that took over four years to get from first Working Draft to Recommendation status. Now that it's been a stable, finished spec for eight months, we're still seeing very little activity. So what's out there? Who cares about XLink?... Perhaps the interest isn't dying away, but was merely shifted to RDF and Topic Maps, technologies that seem to be fulfilling much of the promise of XLink. Perhaps their success represents the triumph of the original ideas of XLink, with out-of-line links and linkbases finding success under different names. This would put a positive spin on the history of XLink, but I'm losing hope on seeing any large-scale use of the elements described in the XLink Recommendation. By describing resource traversal in terms of the ending resource displaying in a new window or the same window, and in terms of when it does so, the link semantics are framed in a way that can be implemented on multiple systems, so it has some of the portability and longer shelf life advantages of markup that is not presentation-oriented. But it's still about how the resources are presented to the user and is, therefore, not markup that you'd store in your core XML database or document collection that you use to generate other formats as needed. Your elements that reference footnotes would store the ID information necessary to find the right footnotes, and your news stories, legal briefs, and judges' decisions that reference legal statues would store the ID information necessary to find those. If you decided that the footnotes or legal statutes should appear in a new window, you'd have a stylesheet add the appropriate XLink markup to the version of the markup being sent to the browser -- if the browser knew what to do with XLink markup..."

  • [December 01, 2001] "Improving Web Linking Using XLink." By David Lowe (University of and Technology, Sydney) and Erik Wilde (Swiss Federal Institute of Technology, Zürich). Paper presented at Open Publish 2001 (First Open Publish Conference. July 30, 2001 - August 02, 2001. Sydney Hilton Hotel, Sydney, Australia). ['XML has heralded a substantial change in the way in which content can be managed. Prominent among these changes is the greatly enhanced model for linking functionality that is enabled by the emerging XLink and XPointer standards.'] "Although the Web has continuously grown and evolved since its introduction in 1989, the technical foundations have remained relatively unchanged. Of the basic technologies, URLs and HTTP has remained stable for some time now, and only HTML has changed more frequently. However, the introduction of XML has heralded a substantial change in the way in which content can be managed. One of the most significant of these changes is with respect to the greatly enhanced model for linking functionality that is enabled by the emerging XLink and XPointer standards. These standards have the capacity to fundamentally change the way in which we utilise the Web, especially with respect to the way in which users interact with information. In this paper, we will discuss some of the richer linking functionality that XLink and XPointer enable -- particularly with respect to aspects such as content transclusion, multiple source and destination links, generic linking, and the use of linkbases to add links into content over which the author has no control. The discussions will be illustrated with example XLink code fragments, and will emphasise the particular uses to which these linking concepts can be put..." [alt URL, cache]

  • [August 02, 2001] "XML for Data: XLink and Data. Using XLink to simplify the representation of data." By Kevin Williams (Chief XML architect, Equient, a division of Veridian). From IBM developerWorks. July 2001. ['This column takes a look at how to use XLink pointers when representing data to make XML documents more compact and flexible. Sample code shows examples of an invoice with and without the XLink pointers, plus an example of using XLinks with a URL-addressable database.'] "The W3C recently promoted a specification called XLink to Recommendation status. In this column, I take a look at XLink and how you can use it to simplify the representation and transmission of data. What is XLink, anyway? To quote the W3C XLink specification: '[T]he XML Linking Language (XLink) ... allows elements to be inserted into XML documents in order to create and describe links between resources.' The specification then goes on to assert that links defined using XLink are similar to HTML hyperlinks, leading many programmers to conclude that this is the only purpose for the specification. However, there is another way XLink can be used to great benefit: to show the relationships between data resources. Consider a typical order-tracking application, say for a large manufacturing company. An XML document describing an order would usually contain information about the customer who placed the order, the order status, and the individual line items on the order, with quantities and prices. Consumers of this document might want to use it in very different ways. In the accounting department, someone who requests the order data probably would be interested only in the total price that it needs to bill the customer -- details about the individual line items on the invoice (apart from the quantity and price) would be irrelevant. By contrast, when customers request their orders (for viewing online, perhaps), they might want to see more information, for example, the human-readable name for a part on a line item. Transmitting the entire document to each customer with full details doesn't necessarily make sense: It would be ideal to transmit just the bare bones of the order (for consumers who are interested only in the basics) with pointers to more detailed info. XLink provides a great way to accomplish that... This column demonstrates how you can use XLink's basic functionality to simplify your document structures and reduce your network transmission overhead. It looks only at the way to use simple links; XLink also provides extended link functionality, which you can use to relate many resources together (you might create an XLink linkbase that relates a customer to all of his or her orders, for example). As XML and the associated helper technologies continue to mature, programmers will have more flexibility when deciding how to implement information systems, allowing you to tune your solutions to best meet the needs of your clients..." Article also available in PDF format.

  • [July 16, 2001] "How to Use XLink with XML. XLink Works for Basic Links or For Embedding External Resources." By Brett McLaughlin (Enhydra strategist, Lutris Technologies). From IBM developerWorks. July 2001. ['XLink, an XML-related specification, lets you achieve dramatic linking effects in your XML documents. In this short tip learn how to include parts of other XML documents in your own XML through XLink. The code example demonstrates the technique.'] "Since the release of XML more than two years ago, an incredible amount of interest in all things 'X' has developed. As proof of this fact, you can check out a ton of XML-related specifications these days: XPointer, XLink, XSD (XML Schema), RDF, RSS, XHTML, to name a few. In this tip, I briefly explore XLink, a particularly useful specification which defines an XML linking mechanism for referring to other documents. For those of you who are HTML authors, at first XLink may sound a lot like the a element that you are so used to, as in <a href="http://www.nickelcreek.com">Check out Nickel Creek!</a>. But XLink offers much more than unidirectional linking. Using XLink, you can create bidirectional links. You can also define how links are processed, and, most important, you can allow linking from any XML element (instead of from the a element only). For all these reasons, XLink is worth knowing about..."

  • [April 24, 2001] "Sun IPR statement on XPointer." [Submitted to W3C by Eve L. Maler.] Posted to XML-DEV 2001-04-24. Excerpt: "This policy shall apply only to Sun's Essential Patent Claims (as defined below) that read on the XML Pointer Language specification ('XPointer'). This undertaking is valid only as long as XPointer either is on the Recommendation track or has been adopted as a Recommendation. Sun Microsystems, Inc. ('Sun') agrees it will grant royalty-free licenses, under reasonable terms and conditions, and on a non-discriminatory basis, under Sun's essential patent claims to make, use, sell, offer for sale, or import implementations of XPointer. One precondition of any license granted to a party shall be the party's agreement to grant royalty-free licenses to Sun and other companies to make, use, sell, offer for sale, or import implementations of XPointer under the party's essential patent claims. Sun expressly reserves all other rights it may have..." (see the remainder). [source]

  • [April 24, 2001] "Understanding XML Linking Technology." By Joseph Feller. In Inside XML Solutions Volume 1, Number 4 (April 2001), pages 1-8.

  • [January 05, 2001] "XML Linking: State of the Art." By Eve Maler (Senior XML Standards Architect, Sun Microsystems XML Technology Center). 'January 2001' [no date given]. ['Eve Maler provides a detailed look into the workings of XML Linking and its related XPointer specification. Includes sample code listings.'] "Back in the early days -- that is, two years ago -- XML was most often compared to HTML, and in the eyes of many, XML came up short. HTML was a simple language anyone could learn; XML had complexities that could confuse developers. HTML had built-in formatting; XML needed a stylesheet to be displayed as anything other than raw code. HTML had hyperlinking functionality with the <A HREF> tag; XML didn't even give you a linking starter kit for embedding hyperlinks into XML in a standardized way. Today, we know that XML is scalable and flexible in ways that would stretch HTML to the breaking point, which has allowed XML to become the "universal solvent" for all data, not just the narrative information that HTML was originally designed to hold. However, if XML is to capture one of the most important features of the web, it still needs to offer a standardized way to do linking. The goal of the XML Linking Working Group of the World Wide Web Consortium is to provide exactly this, and we're closing in on our goal. This paper describes the features, benefits, and basic technical details of XML linking technologies... The XML Linking Working Group has created two specifications to solve the two main requirements of XML linking: (1) XLink is an XML vocabulary that allows XML resources to contain links themselves. XLink can be used to create HTML-style hyperlinks, but also has new features that make it easier to manage links over time and to create new "information products" consisting just of links. (2) XPointer is an adjunct to URIs that allows XML resources to be addressed into (for example, by links, XML or otherwise). XPointer can be used to get to any arbitrary region inside an XML file, unlike HTML...As of this writing, things are moving quickly in the XML linking world. XLink and XPointer (along with XML Base, another specification owned by the XML Linking WG) are in the W3C Candidate Recommendation phase, during which the W3C actively seeks implementation experience. After this phase, specifications typically move on to a Proposed Recommendation phase and then reach Recommendation status. Also, several W3C Notes have been published on technical matters related to XML linking, and one more is expected." [cache]

  • [October 13, 2000] Tutorials and Reference for XPointer and Extended-XLink. Jiri Jirat recently announced the availability of tutorial resources for the W3C XML Linking specifications. These materials are posted on the Zvon.org web site along with a collection of related tutorials covering XSLT, SOAP, XUL, CSS, Namespaces, etc. The online XPointer reference "allows easy access to definitions of locations, errors and functions, with links to relevant examples in XPointer tutorial. The XPointer tutorial explains the concepts of XPointer using more than 30 examples. It is aimed at 'ordinary' user, who will use XPointer mainly in the href attribute of XLink. A tutorial for extended-type XLink has also been added. The Zvon XLink reference has been updated with cross-references to examples for extended-type XLink." In this connection, note Daniel Veillard's reminder that the W3C specifications for XPointer and XLink are currently in Candidate Recommendation stage at W3C, and that the XML Linking Working Group is seeking implementation reports for XPointer and XLink. The CR stage "is dedicated to implementors, and the specifications are allowed to pursue their way toward the final Recommendation status only if the prerequisite of implementability have been verified." Implementation feedback for XPointer and Xlink may be sent to the publicly archived mailing list www-xml-linking-comments@w3.org. Review comments may also be sent to the XML Linking Working Group co-chairs, Eve Maler and Daniel Veillard.

  • [June 18, 1998] "XML and XLink for the SGML Knowledgeable." Powerpoint slides, by Eve Maler and Steve DeRose. May, 1998. Also available here in HTML format. The related tutorial was presented in Paris at the SGML/XML Europe '98 Conference, and elsewhere.

  • [October 02, 1999] XML Linking: An introduction by Steven J. DeRose. [local archive copy]

  • [Early version: What is XLink?] "What is XLink?" By Steve DeRose. [local archive copy]

  • [January 31, 2001] "XPath. [Chapter 9 in XML in a Nutshell.]" Excerpt from the book XML in a Nutshell. A Desktop Quick Reference. By Elliotte Rusty Harold and W. Scott Means. O'Reilly, January 2001. ISBN: 0-596-00058-8. "XPath is a non-XML language used to identify particular parts of XML documents. XPath lets you write expressions that refer to the document's first person element, the seventh child element of the third person element, the ID attribute of the first person element whose contents are the string 'Fred Jones,' all xml-stylesheet processing instructions in the document's prolog, and so forth. XPath indicates nodes by position, relative position, type, content, and several other criteria. XSLT uses XPath expressions to match and select particular elements in the input document for copying into the output document or further processing. XPointer uses XPath expressions to identify the particular point in or part of an XML document that an XLink links to. XPath expressions can also represent numbers, strings, or Booleans, so XSLT stylesheets carry out simple arithmetic for numbering and cross-referencing figures, tables, and equations. String manipulation in XPath lets XSLT perform tasks like making the title of a chapter uppercase in a headline, but mixed case in a reference in the body text..." Note publisher's blurn for the book: "XML in a Nutshell is just what serious XML developers need in order to take full advantage of XML's incredible potential: a comprehensive, easy-to-access desktop reference to the fundamental rules that all XML documents and authors must adhere to. This book details the grammar that specifies where tags may be placed, what they must look like, which element names are legal, how attributes attach to elements, and much more..."

  • "Initial Experiences of an XLink Implementation." By Leslie Carr, The Multimedia Research Group, University of Southampton. [local archive copy]

  • [December 1999] "XML Linking." By Steven J. DeRose (Brown University Scholarly Technology Group, Brown University). In ACM Computing Surveys Volume 31, Issue 4 (December 1999). Association for Computing Machinery. "The Web Consortium's XML Linking working group is developing specifications to enable more advanced hypertext functionality on the Web: in particular fine-grained anchors, external annotation, and bi-directional links. This paper examines basic goals and approaches; describes HTML linking limitations XML Linking seeks to overcome; and surveys the Working Group's primary specifications: XPath, XPointer, and XLink. As of this writing, the last two, while well advanced, are not final recommendations, and so are subject to change. Consult the W3C Web site for the latest versions..." Also available in PDF format. [cache HTML, PDF]

  • [February 04, 1999] "XLink: The XML Linking Language." By Sean McGrath. In Dr. Dobb's Journal Volume 23 Number 12 (December 1998). [Internet Programming.] ISSN: 1044-789X. "The XML Linking Language (XLink) is a draft proposal from the World Wide Web consortium that addresses the shortcomings of HTML's simple hypertext model and allows the rich structure of XML documents to be fully utilized in hypertext creation and management."

  • [August 30, 2000] Extending XPointer to handle external entities. "I've been asked to post this message on behalf of the W3C XML Linking WG. The WG is considering a change to XPointer to allow it to address arbitrary external parsed entities (specifically, multiple-rooted entities that cannot be served as */xml). The comment that raised this issue is at http://lists.w3.org/Archives/Public/www-xml-linking-comments/2000AprJun/0039.html. ["Comments on XPointer 1.0 CR," by Michael Kay.] Right now there's a lot of support on the WG for making this change, on the grounds that [... see the message, and Kay's posting]

  • XPATH Cheat Sheet. Links to XPath tutorials and related materials.

  • "The Implications of XML for Open Hypermedia." By Leslie Carr & Wendy Hall. June 1998. Proceedings of 4th Workshop on Open Hypermedia Systems, Technical Report CS-98-01, Department of Computer Science, Aalborg University Esbjerg, Denmark. Abstract : "The authors have implemented one of a number of link services for use with the WWW, providing some open hypermedia facilities using native WWW technologies. Using this software in various projects with various information providers (some of whom have taken it up enthusiastically, others of whom remain sceptical) has raised questions about the link service. However, recent additions to the WWW, in the shape of XML and XLink, raise issues about the scope of the link services and the philosophy of OH systems in general."

  • [September 08, 2000] "XLink and Open Hypermedia Systems: A Preliminary Investigation." By Brent Halsey and Kenneth M. Anderson (Department of Computer Science, University of Colorado, Boulder, Boulder, CO 80309-0430, USA; Tel: 1-303-492-6003; E-mail: {halseyb, kena}@cs.colorado.edu). Pages 212-213 in Proceedings of the eleventh ACM on Hypertext and Hypermedia. May 30 - June 3, 2000, San Antonio, TX USA. "XLink is an emerging Internet standard designed to support the linking of XML documents. We present preliminary work on using XLink as an export format for the links of an open hypermedia system. Our work provides insights