<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification::19990205//EN" "dtds/xmlspec.dtd" [
<!ENTITY doc-type "WD">
<!ENTITY iso6.doc.date "29-May-1999">
]>
<!--ArborText, Inc., 1988-1998, v.4002-->
<?Pub UDT _bookmark _target?>
<?Pub Inc?>
<?xml-stylesheet href="file:///C|/Program%20Files/SoftQuad/XMetaL%201/display/xmlspec.css"
type="text/css"?>
<spec>
<!-- Last edited: 27 May 1999 by bent -->
  <header>
<?Pub Dtl?>
    <title>XML Linking Language (XLink)</title>
    <version>Version 1.0</version>
    <w3c-designation><!-- &doc-type;-&iso6.doc.date; --> WD-xlink-19990527</w3c-designation>
    <w3c-doctype>World Wide Web Consortium Working Draft</w3c-doctype>
    <pubdate>
      <day>29</day>
      <month>May</month>
      <year>1999</year>
    </pubdate>
    <notice>
      <p>This draft is for public discussion.</p>
    </notice>
    <publoc>
      <loc href="http://www.w3.org/XML/Group/1999/05/WD-xlink-current">http://www.w3.org/XML/Group/1999/05/WD-xlink-current</loc>
    </publoc>
    <prevlocs>
<!--Check: was it actually August?-->
      <loc href="http://www.w3.org/XML/Group/1999/05/WD-xlink-19990527">http://www.w3.org/XML/Group/1999/05/WD-xlink-19990527</loc>
      <loc href="http://www.w3.org/XML/Group/1999/05/WD-xlink-19990505">http://www.w3.org/XML/Group/1999/05/WD-xlink-19990505</loc>
      <loc href="http://www.w3.org/TR/1998/WD-xlink-19980303">http://www.w3.org/TR/1998/WD-xlink-19980303</loc>
      <loc href="http://www.w3.org/TR/WD-xml-link-970630">http://www.w3.org/TR/WD-xml-link-970630</loc>
    </prevlocs>
    <authlist>
<!--Updated author hrefs  dorchard-->
<!-- Update Steve's email - bent -->
      <author>
        <name>Steve DeRose</name>
        <affiliation>Inso Corp. and Brown University</affiliation>
        <email href="mailto:Steven_DeRose@Brown.edu">Steven_DeRose@Brown.edu</email>
      </author>
      <author>
        <name>David Orchard</name>
        <affiliation>IBM Corp.</affiliation>
        <email href="mailto:dorchard@ca.ibm.com">dorchard@ca.ibm.com</email>
      </author>
      <author>
        <name>Ben Trafford</name>
        <affiliation>Invited Expert</affiliation>
        <email href="mailto:bent@exemplary.net">bent@exemplary.net</email>
      </author>
<!-- I suggest we move Eve and Tim down to the Acknowledgements section. We
		also ought to add Gabe Beged-Dov there, as well. bent
		how shall we cite Tim? sjd What about with an Acknowledgments section?
		-elm <AUTHOR> <NAME>Tim Bray</NAME> <AFFILIATION>Textuality</AFFILIATION>
		<EMAIL>tbray@textuality.com</EMAIL> </AUTHOR>-->
    </authlist>
    <status>
      <p>This is a W3C Working Draft for review by W3C members and other interested parties. It is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than &quot;work in progress&quot;. A list of current W3C working drafts can be found at <loc href="http://www.w3.org/TR">http://www.w3.org/TR</loc>.</p>
      <p><emph>Note:</emph> Since working drafts are subject to frequent change, you are advised to reference the above URI, rather than the URIs for working drafts themselves. Some of the work remaining is described in <specref ref="unfinished"/>. </p>
      <p>This work is part of the W3C XML Activity (for current status, see <loc href="http://www.w3.org/MarkUp/SGML/Activity">http://www.w3.org/XML/Activity 		  </loc>). For information about the XPointer language which is expected to be used with XLink, see <loc href="http://www.w3.org/MarkUp/SGML/Activity">http://www.w3.org/TR/WD-xptr</loc>.
		</p>
      <p>See <loc href="http://www.w3.org/TR/NOTE-xlink-principles">http://www.w3.org/TR/NOTE-xlink-principles </loc> for additional background on the design principles informing XLink.</p>
      <p>Also see <loc href="http://www.w3.org/TR/NOTE-xlink-req/">http://www.w3.org/TR/NOTE-xlink-req/</loc> for the XLink requirements that this document attempts to satisfy.</p>
    </status>
    <abstract>
<!-- edited the abstract for further clarity - bent -->
      <p>This specification defines constructs that may be inserted into XML DTDs, schemas and document instances to describe links between objects. It uses XML syntax to create structures that can describe the simple unidirectional hyperlinks of today&apos;s HTML as well as more sophisticated links.</p>
    </abstract>
    <pubstmt>
      <p>Burlington, Seekonk, et al.: World-Wide Web Consortium, XML Working Group, 1998.</p>
    </pubstmt>
    <sourcedesc>
      <p>Created in electronic form.</p>
    </sourcedesc>
    <langusage>
      <language id="en">English</language>
      <language id="ebnf">Extended Backus-Naur Form (formal grammar)</language>
    </langusage>
    <revisiondesc>
      <slist>
        <sitem>1997-01-15 : Skeleton draft by TB</sitem>
        <sitem>1997-01-24 : Fleshed out by sjd</sitem>
        <sitem>1997-04-08 : Substantive draft</sitem>
        <sitem>1997-06-30 : Public draft</sitem>
        <sitem>1997-08-01 : Public draft</sitem>
        <sitem>1997-08-05 : Prose/organization work by sjd</sitem>
        <sitem>1997-10-14: Conformance and design principles; a bit of cleanup by elm</sitem>
        <sitem>1997-11-07: Update for editorial issues per issues doc, by sjd.</sitem>
        <sitem>1997-12-01: Update for editorial issues per issues doc in preparation for F2F meeting, by sjd.</sitem>
        <sitem>1998-01-13: Editorial cleanup, addition of new design principles, by elm.</sitem>
        <sitem>1998-02-27: Splitting out of XLink and XPointer, by elm.</sitem>
        <sitem>1998-03-03: Moved most of the XPointer locator stuff here. elm</sitem>
        <sitem>1999-04-24: Editorial rewrites to represent new ideas on XLink, especially the inclusion of arcs. bent</sitem>
        <sitem>1999-05-05: Prose/organization work by dorchard. Moved much of the semantics section around, from: locators, link semantics, remote resource semantics, local resource semantics; to: resource semantics, locators, behavior semantics, link semantics, arc semantics</sitem>
        <sitem>1999-05-12: Prose/organization work. Re-organized some of the sections, removed XML constructs from the document, added descriptive prose, edited document text for clarity. Rewrote the link recognition section. bent</sitem>
        <sitem>1999-05-17: Further prose work. Added non-normative examples. Clarified arcs. bent</sitem>
        <sitem>1999-05-23: Edited for grammar and clarity. bent</sitem>
        <sitem>1999-05-27: Final once-over before sending to group. Fixed sjd&apos;s email address. bent</sitem>
      </slist>
    </revisiondesc>
  </header>
  <body>
    <div1>
<?Pub Dtl?>
      <head>Introduction</head>
      <p>This specification defines constructs that may be inserted into XML DTDs, schemas, and document instances to describe links between objects. A <termref def="dt-link">link</termref>, as the term is used here, is an explicit relationship between two or more data objects or portions of data objects. This specification is concerned with the syntax used to assert link existence and describe link characteristics. Implicit (unasserted) relationships, for example that of one word to the next or that of a word in a text to its entry in an on-line dictionary are obviously important, but outside its scope.</p>
      <p>Links are asserted by <xtermref href="WD-xml-lang.html#dt-element">elements </xtermref> contained in <xtermref href="WD-xml-lang.html#dt-xml-doc">XML document instances</xtermref>. The simplest case is very like an HTML <code>A</code> link, and has these characteristics:
			<ulist><item><p>The link is expressed at one of its ends (similar to the <code>A</code> element in some document)</p></item><item><p>Users can only initiate travel from that end to the other</p></item><item><p>The link&apos;s effect on windows, frames, go-back lists, stylesheets in use, and so on is mainly determined by browsers, not by the link itself. For example, traveral of <code>A</code> links normally replaces the current view, perhaps with a user option to open a new window.</p></item><item><p>The link goes to only one destination (although a server may have great freedom in finding or dynamically creating that destination).</p></item></ulist>
		</p>
      <p>While this set of characteristics is already very powerful and obviously has proven itself highly useful and effective, each of these assumptions also limits the range of hypertext functionality. The linking model defined here provides ways to create links that go beyond each of these specific characteristics, thus providing features previously available mostly in dedicated hypermedia systems.
		</p>
      <div2>
        <head>Origin and Goals</head>
        <p>Following is a summary of the design principles governing XLink:
		<olist><item><p>XLink must be straightforwardly usable over the Internet. </p></item><item><p>XLink must be usable by a wide variety of link usage domains and classes of linking application software.</p></item><item><p>XLink must support HTML 4.0 linking constructs.</p></item><item><p>The XLink expression language must be XML.</p></item><item><p>The XLink design must be formal, concise, and illustrative.</p></item><item><p>XLinks must be human-readable and human-writable.</p></item><item><p>XLinks may reside within or outside the documents in which the
			participating resources reside. </p></item><item><p>XLink must represent the abstract structure and significance of links.</p></item><item><p>XLink must be feasible to implement.</p></item><item><p>XLink must be informed by knowledge of established hypermedia systems and standards.</p></item></olist>
	</p>
      </div2>
<!--Changed the list of requirements to reflect current XLink requirements
document. bent-->
      <div2>
        <head>Relationship to Existing Standards</head>
        <p>Three standards have been especially influential:
		<ulist><item><p><emph>HTML:</emph> Defines several SGML element types that represent links.</p></item><item><p><emph>HyTime:</emph> Defines inline and out-of-line link structures and some semantic features, including traversal control and presentation of objects. <!--Changed from "placement of objects into a display or other space" -elm-->
			</p></item><item><p><emph>Text Encoding Initiative Guidelines (TEI P3):</emph> Provides structures for creating links, aggregate objects, and link collections out of them.</p></item></ulist>
	</p>
        <p>Many other linking systems have also informed this design, especially Dexter, FRESS, MicroCosm, and InterMedia.</p>
      </div2>
      <div2>
        <head>Terminology</head>
        <p>The following basic terms apply in this document. <!--<IMG
	SRC="local://./linkdiag.gif">(figure to be inserted)-->
		<glist><gitem><label><termdef id="dt-arc" term="Arc">arc</termdef></label><def><p>A symbolic representation of traversal behavior in links, especially the direction, context and timing of traversal.</p></def></gitem><gitem><label><termdef id="dt-eltree" term="Element Tree">element tree</termdef></label><def><p>A representation of the relevant structure specified by the tags and attributes in an XML document, based on &quot;groves&quot; as defined in the ISO DSSSL standard. </p></def></gitem><gitem><label><termdef id="dt-inline" term="In-Line Link">inline link</termdef></label><def><p>Abstractly, a <termref def="dt-link">link</termref> which serves as one of its own <termref def="dt-resource">resources</termref>. Concretely, a link where the content of the <termref def="dt-linkel">linking	element</termref> serves as a <termref def="dt-particip-resource">participating resource</termref>.
				HTML <code>A</code>, HyTime <code>clink</code>, and TEI	<code>XREF</code>
				are all inline links.</p></def></gitem><gitem><label><termdef id="dt-link" term="Link">link</termdef></label><def><p>An explicit relationship between two or more data objects or portions of data objects.</p></def></gitem><gitem><label><termdef id="dt-linkel" term="Linking Element">linking element </termdef></label><def><p>An <xtermref href="WD-xml-lang.html#dt-element">element</xtermref> that asserts the existence and describes the characteristics of a <termref def="dt-link"> link</termref>.</p></def></gitem><gitem><label><termdef id="dt-local-resource" term="Local Resource">local resource</termdef></label><def><p>The content of an <termref def="dt-inline">inline</termref>linking element. Note that the content of the linking element could be explicitly pointed to by means of a regular <termref def="dt-locator">locator</termref> in the same linking element, in which case the resource is considered <termref def="dt-remote-resource"> remote</termref>, not local.</p></def></gitem><gitem><label><termdef id="dt-locator" term="Locator">locator</termdef> </label><def><p>Data, provided as part of a link, which identifies a
				<termref def="dt-resource">resource</termref>.</p></def></gitem><gitem><label><termdef id="dt-multidir" term="Multi-Directional Link">multidirectional link</termdef></label><def><p>A <termref def="dt-link">link</termref> whose <termref def="dt-traversal"> traversal</termref> can be initiated from more than one of its <termref def="dt-particip-resource"> participating resources</termref>. Note that being able to &quot;go back&quot; after following a one-directional link does not make the link multidirectional.</p></def></gitem><gitem><label><termdef id="dt-outofline" term="Out-of-line Link">out-of-line link</termdef></label><def><p>A <termref def="dt-link">link</termref> whose content does not serve as one of the link&apos;s <termref def="dt-particip-resource">participating resources </termref>. Such links 						presuppose a notion like <termref def="dt-xlg">extended link groups</termref>, which instruct application software where to look for links. Out-of-line links are generally required for supporting multidirectional <termref def="dt-traversal">traversal</termref> and for allowing read-only resources to have outgoing links.</p></def></gitem><gitem><label><termdef id="dt-parsedq" term="Parsed">parsed</termdef></label><def><p>In the context of link behavior, a parsed link is any link			whose content is transcluded into the document where the link originated. The	use of the term &quot;parsed&quot; directly refers to the concept in XML of a
				parsed entity.</p></def></gitem><gitem><label><termdef id="dt-particip-resource" term="Participating Resource"> participating resource</termdef></label><def><p>A <termref def="dt-resource">resource</termref> that belongs to a link. All resources are potential contributors to a link; participating	resources are the actual contributors to a particular link.</p></def></gitem><gitem><label><termdef id="dt-remote-resource" term="Remote Resource">remote resource</termdef></label><def><p>Any participating resource of a link that is pointed to with a locator. </p></def></gitem><gitem><label><termdef id="dt-resource" term="Resource">resource</termdef></label><def><p>In the abstract sense, an addressable unit of information or service that is participating in a <termref def="dt-link">link</termref>. Examples include files, images, documents, programs, and query results. Concretely, anything reachable by the use of a <termref def="dt-locator">locator</termref> in some <termref def="dt-linkel">linking	element</termref>. Note that this term and its definition are taken from the basic specifications governing the World Wide Web. <!--Joel notes: need link here. bent asks: A link?-->
				 </p></def></gitem><gitem><label><termdef id="dt-subresource" term="sub-Resource">sub-resource</termdef></label><def><p>A portion of a resource, pointed to as the precise	destination of a link. As one example, a link might specify that an entire	document be retrieved and displayed, but that some specific part(s) of it is the specific linked data, to be treated in an application-appropriate manner such as indication by highlighting, scrolling, etc.</p></def></gitem><gitem><label><termdef id="dt-traversal" term="Traversal">traversal</termdef></label><def><p>The action of using a <termref def="dt-link">link</termref>; that is, of accessing a <termref def="dt-resource">resource</termref>. Traversal may be initiated by a user action (for example, clicking on the displayed content of a <termref def="dt-linkel">linking element</termref>) or occur under program control.</p></def></gitem></glist>
	</p>
      </div2>
      <div2>
        <head>Notation</head>
        <p>The formal grammar for <termref def="dt-locator">locators</termref> is given using a simple Extended Backus-Naur Form (EBNF) location, as described in <xspecref href="http://www.w3.org/TR/REC-xml#sec-notation">the XML specification</xspecref>.</p>
<!-- fixed link to XML spec - bent -->
      </div2>
    </div1>
    <div1 id="addressing">
<?Pub Dtl?>
      <head>Locator Syntax</head>
      <p>The locator for a <termref def="dt-resource">resource</termref> is typically provided by means of a Uniform Resource Identifier, or URI. XPointers can be used in conjunction with the URI structure, as fragment identifiers, to specify a more precise sub-resource. </p>
<!-- Removed the discussion of queries from the previous paragraph, due to contention within the WG. bent -->
      <p>A locator generally contains a URI, as described in IETF RFCs <bibref ref="rfc1738"/> and <bibref ref="rfc1808"/>. As these RFCs state, the URI may include a trailing <emph>query</emph> (marked by a leading &quot;<code>?</code>&quot;), and be followed by a &quot;<code>#</code>&quot; and a <emph>fragment identifier</emph>, with the query interpreted by the host providing the indicated resource, and the interpretation of the fragment identifier dependent on the data type of the indicated resource.</p>
<!--Is there some restriction on URNs having queries and/or fragment identifiers?  Since these RFCs don't mention URIs explicitly, should the wording here lead from URLs to URIs more explicitly? -elm-->
      <p>In order to locate XML documents and portions of documents, a locator value may contain either a <xtermref href="http://www.w3.org/Addressing/rfc1738.txt"> URI</xtermref> or a fragment identifier, or both. Any fragment identifier for pointing into XML must be an <xtermref href="http://www.w3.org/TR/WD-xptr#dt-xpointer"> XPointer</xtermref>.</p>
      <p>Special syntax may be used to request the use of particular processing models in accessing the locator&apos;s resource. This is designed to reflect the realities of network operation, where it may or may not be desirable to exercise fine control over the distribution of work between local and remote processors. 
		<scrap id="locator" lang="ebnf"><head>Locator</head><prod id="nt-locator"><lhs>Locator</lhs><rhs><nt def="nt-uri">URI</nt></rhs><rhs>| <nt def="nt-connector">Connector</nt> (<xnt href="http://www.w3.org/TR/WD-xptr">XPointer</xnt> | <xnt href="WD-xml-lang.html#NT-Name">Name</xnt>)</rhs><rhs>| <nt def="nt-uri">URI</nt> <nt def="nt-connector">Connector</nt> (<xnt href="http://www.w3.org/TR/WD-xptr">XPointer</xnt> | <xnt href="WD-xml-lang.html#NT-Name">Name</xnt>)</rhs></prod><prod id="nt-connector"><lhs>Connector</lhs><rhs>&apos;#&apos; | &apos;|&apos;</rhs></prod><prod id="nt-uri"><lhs>URI</lhs><rhs><xnt href="WD-xml-lang.html#NT-URLchar">URIchar*</xnt></rhs></prod></scrap>
	</p>
      <p><termdef id="dt-designated" term="Designated Resource">In this discussion, the term <term>designated resource</term> refers to the resource which an entire locator serves to locate.</termdef> The following rules apply:
		<ulist><item><p><termdef id="dt-containing-resource" term="Containing Resource">		  The URI, if provided, locates a resource called the <term>containing resource</term>.</termdef></p></item><item><p>If the URI is not provided, the containing resource is considered to be the document in which the linking element is contained. 
				</p></item><item><p><termdef id="dt-sub-resource" term="Sub-Resource">If an XPointer				  is provided, the designated resource is a <term>sub-resource</term>
				of the containing resource; otherwise the designated resource is the
				containing resource.</termdef></p></item><!--Is this now incorrect, given the nature of the switch from here() to origin()? -elm 
			Oy, yes, i think so. it will require some fun wording, though, so i haven't fixed it yet here -sjd--><item><p>If the <nt def="nt-connector">Connector</nt> is followed directly by a <xnt href="http://www.w3.org/TR/REC-xml#NT-Name">Name</xnt>, the <xnt href="http://www.w3.org/TR/REC-xml#NT-Name">Name</xnt> is shorthand for the XPointer&quot;<code>id(Name)</code>&quot;; that is, the sub-resource is the element in the containing resource that has an XML <xtermref href="http://www.w3.org/TR/REC-xml#sec-attrtypes">ID attribute</xtermref> whose value <xtermref href="http://www.w3.org/TR/REC-xml#dt-match">matches</xtermref> the 				  <xnt href="http://www.w3.org/TR/REC-xml#NT-Name">Name</xnt>. This shorthand is to encourage use of the robust <code>id</code> addressing mode.</p></item><!-- fixed links to the XML recommendation - bent --><item><p>If the connector is &quot;<code>#</code>&quot;, this signals an intent that the containing resource is to be fetched as a whole from the host that provides it, and that the XPointer processing to extract the sub-resource
				is to be performed on the client, that is to say on the same system where the linking element is recognized and processed.</p></item><item><p>If the connector is &quot;<code>|</code>&quot;, no intent is signaled as to what processing model is to be used to go about accessing the designated resource.</p></item></ulist>
	</p>
      <p>Note that the definition of a URI includes an optional query component. </p>
      <p>In the case where the URI contains a query (to be interpreted by the server), information providers and authors of server software are urged to use queries as follows: 
		<scrap id="querysyntax" lang="ebnf"><head>Query</head><prod id="nt-query"><lhs>Query</lhs><rhs>&apos;XML-XPTR=&apos; (<xnt href="http://www.w3.org/TR/WD-xptr"> XPointer</xnt> | <xnt href="http://www.w3.org/TR/REC-xml#NT-Name">Name</xnt>)</rhs></prod></scrap>
	</p>
<!-- fixed link to XML recommendation - bent -->
    </div1>
    <div1>
<?Pub Dtl?>
      <head>Link Recognition</head>
      <p>The existence of a <termref def="dt-link">link</termref> is asserted by a <termref def="dt-linkel">linking element</termref>. Linking elements must be recognized reliably by application software in order to provide appropriate display and behavior. There are several ways link recognition could be accomplished: for example, reserving element type names, reserving attributes names, leaving the matter of recognition entirely up to stylesheets and application software, or using the XLink <xtermref href="http://www.w3.org/TR/REC-xml-names/">namespace</xtermref> to specify element names and attribute names that would be recognized by namespace and XLink-aware processors. Using element and attribute names within the XLink namespace provides a balance between giving users control of their own markup language design and keeping the identification of linking elements simple and unambiguous.</p>
      <p>The two approaches to identifying linking elements are relatively simple to implement. For example, here&apos;s how the HTML <code>A</code> element would be declared using attributes within the XLink namespace, and then how an element within the XLink namespace might do the same:
		<eg>&lt;A xlink:type=&quot;simple&quot; xlink:href=&quot;http://www.w3.org/TR/wd-xlink/&quot;
xlink:title=&quot;The Xlink Working Draft&quot;&gt;The XLink Working Draft.&lt;/A&gt;</eg>
		<eg>&lt;xlink:simple href=&quot;http://www.w3.org/TR/wd-xlink/&quot;
title=&quot;The XLink Working Draft&quot;&gt;The XLink Working Draft&lt;/xlink:simple&gt;</eg>
	Any arbitrary element can be made into an XLink by using the <code>xlink:type</code> attribute. And, of course, the explicit XLink elements may be used, as well. This document will go on to describe the linking attributes that are associated with linking elements. It may be assumed by the reader that these attributes would require the <code>xlink</code> namespace prefix if they existed within an arbitrary element, or that they may be used directly if they exist within an explicit Xlink element.</p>
<!-- heavily modified this section to accomodate namespace-aware link recognition - bent -->
    </div1>
<!-- Rewrote this entire section. - bent -->
    <div1>
      <head>Linking Attributes</head>
      <p>XLink has several attributes associated with the variety of links it may represent. These attributes define four main concepts: locators, arcs, behaviors, and semantics. <emph>Locators</emph> define where the actual resource is located. <emph>Arcs</emph> define the traversal of links. Where does the link come from? Where does it go to? All this information can be stored in the arc attributes. <emph>Behaviors</emph> define how the link is activated, and what the application should do with the resource being linked to. <emph>Semantics</emph> define useful information that the application may use, and enables the link for such specalized targets as constricted devices and accessibility software.</p>
      <div2 id="link-locators">
        <head>Locator Attributes</head>
        <p>The only locator attribute at this time is <code>href</code>. This attribute must contain either a string in the form of a URI that defines the remote resource being linked to, a string containing a fragment identifier that links to a local resource, or a string containing a URI with a fragment identifier concacenated onto it.</p>
      </div2>
      <div2 id="link-arcs">
        <head>Arc Attributes</head>
        <p>Arcs contain two attributes, <code>from</code> and <code>to</code>. The <code>from</code> attribute may contain a string containing the content of a <code>role</code> attribute from the resource being linked from. The purpose of the <code>from</code> attribute is to define where this link is being actuated from.</p>
        <p>The <code>to</code> attribute may contain a string containing the content of a <code>role</code> attribute from the resource being linked to. The purpose of the <code>to</code> attribute is to define where this link traverses to.</p>
        <p>The application may use this information in a number of ways, especially in a complex hypertext system, but it is mainly useful in providing context for application behavior.</p>
<!-- I'm at a loss as to how to describe arcs more clearly than this. I don't want to devolve into discussions of directed graphs and n-ary links. -bent -->
      </div2>
      <div2 id="link-behaviors">
        <head>Behavior Attributes</head>
        <p>There are two attributes associated with behavior: <code>show</code> and <code>actuate</code>. The <code>show</code> attribute defines how the remote resource is to be revealed to the user. It has three options: <code>new</code>, <code>parsed</code>, and <code>replace</code>. The <code>new</code> option indicates that the remote resource should be shown in a new window (or other device context) without replacing the previous content. The <code>parsed</code> option, relating directly to the XML concept of a parsed entity, indicates that the content should be integrated into the document from which the link was actuated. The <code>replace</code> option is the one most commonly seen on the World Wide Web, where the document being linked from is entirely replaced by the object being linked to.</p>
        <p>The <code>actuate</code> attribute defines how the link is initiated. It has two options: <code>user</code> and <code>auto</code>. The <code>user</code> option indicates that the link must be initiated by some sort of human-initiated selection, such as clicking on an HTML anchor. The <code>auto</code> option indicates that the link is automatically initiated when the application deems that the user has reached the link. It then follows the behavior set out in the <code>show</code> option.</p>
<!-- Something should be put here in terms of an example. Idea: "A" link versus automatically updating encyclopedia. -bent -->
      </div2>
      <div2 id="link-semantics">
        <head>Semantic Attributes</head>
        <p>There are two attributes associated with semantics, <code>role</code> and <code>title</code>. The <code>role</code> attribute is a generic string used to describe the function of the link&apos;s content. For example, a poem might have a link with a <code>role=&quot;stanza&quot;</code>. The <code>role</code> is also used as an identifier for the <code>from</code> and <code>to</code> attributes of arcs.</p>
        <p>The <code>title</code> attribute is designed to provide human-readable text describing the link. It is very useful for those who have text-based applications, whether that be due to a constricted device that cannot display the link&apos;s content, or if it&apos;s being read by an application to a visually-impaired user, or if it&apos;s being used to create a table of links. The <code>title</code> attribute contains a simple, descriptive string.</p>
      </div2>
    </div1>
    <div1 id="linking-elements">
      <head>Linking Elements</head>
      <p>There are several kinds of linking elements in XLink: <code>simple</code> links, <code>locators</code>, <code>arcs</code>, and <code>extended</code> links. These elements may be instantiated via element declarations from the XLink namespace, or they may be instantiated via attribute declarations from the XLink namespace. Both kinds of instantiation are described in the definition of each linking element.</p>
      <p>The <code>simple</code> link is used to declare a link that approximates the functionality of the HTML <code>A</code> element. It has, however, a few added features to increase its value, including the potential declaration of semantics and behavior. The <code>locator</code> elements are used to define the resource being linked to. Some links may contain multiple locators, representing a choice of potential links to be traversed. The <code>arcs</code> are used to define the traversal semantics of the link. Finally, an <code>extended</code> linking element differs from a simple link in that it can connect any number of resources, not just one local resource (optionally) and one remote resource, and in that extended links are more often out-of-line than simple links.</p>
      <div2 id="simple-links">
        <head>Simple Links</head>
        <p id="dt-simplelink"><termdef id="dt-simpleline" term="Simple Link"><term>Simple links</term> can be used for purposes that approximate the functionality of a basic HTML <code>A</code> link, but they can also support a limited amount of additional functionality. Simple links have only one locator and thus, for convenience, combine the functions of a linking element and a locator into a single element.</termdef> As a result of this combination, the simple linking element offers both a locator attribute and all the behavior and semantic attributes.</p>
        <p>The following are two examples of linking elements, each showing all the possible attributes that can be associated with a simple link. Here is the explicit XLink simple linking element.
	<eg>&lt;!ELEMENT xlink:simple ANY&gt;
&lt;!ATTLIST xlink:slink
    href           CDATA    				#REQUIRED
    role           CDATA    				#IMPLIED
    title          CDATA    				#IMPLIED
    show           (new|parsed|replace)  	&quot;replace&quot;
    actuate        (user|auto) 				&quot;user&quot;
&gt;</eg>
	And here is how to make an arbitrary element into a simple link.
	<eg>&lt;!ELEMENT xlink:simple ANY&gt;
&lt;!ATTLIST foo
	xlink:type     (simple|extended|locator|arc) #FIXED &quot;simple&quot;		
    xlink:href     CDATA    				#REQUIRED
    xlink:role     CDATA    				#IMPLIED
    xlink:title    CDATA    				#IMPLIED
    xlink:show     (new|parsed|replace)  	&quot;replace&quot;
    xlink:actuate  (user|auto) 				&quot;user&quot;
&gt;</eg>
	Here is how the first example might look in a document:
<eg>&lt;xlink:simple href=&quot;http://www.w3.org/TR/wd-xlink&quot; role=&quot;working draft&quot; 
	title=&quot;The XLink Working Draft&quot; show=&quot;replace&quot; actuate=&quot;user&quot;&gt;
The XLink Working Draft.&lt;/xlink:simple&gt;</eg>
<eg>&lt;foo xlink:href=&quot;http://www.w3.org/TR/wd-xlink&quot; xlink:role=&quot;working draft&quot;
	xlink:title=&quot;The XLink Working Draft&quot; xlink:show=&quot;new&quot; xlink:actuate=&quot;user&quot;&gt;
The XLink Working Draft.&lt;/foo&gt;</eg>
	Alternately, a simple link could be as terse as this:
<eg>&lt;foo xlink:href=&quot;#stanza1&quot;&gt;The First Stanza.&lt;/foo&gt;</eg>
	</p>
        <p>
	There are no constraints on the contents of a simple linking element. In
	the sample declaration above, it is given a content model of <code>ANY</code>
	to illustrate that any content model or declared content is acceptable. In
	a valid document, every element that is significant to XLink must still conform
	to the constraints expressed in its governing DTD.</p>
        <p>Note that it is meaningful to have an out-of-line simple link, although
	such links are uncommon. They are called &quot;one-ended&quot; and are typically used
	to associate discrete semantic properties with locations. The properties might
	be expressed by attributes on the link, the link&apos;s element type name, or in
	some other way, and are not considered full-fledged resources of the link.
	Most out-of-line links are extended links, as these have a far wider range
	of uses.</p>
      </div2>
      <div2 id="extended-link">
        <head>Extended Links</head>
        <p>
          <termdef id="dt-extendedlink" term="Extended Link">An <term>extended link</term> differs from a simple link in that it can connect any number of resources, not just one local resource (optionally) and one remote resource, and in that extended links are more often out-of-line than simple links.</termdef>
        </p>
        <p>These additional capabilities of extended links are required for:  
		<ulist><item><p>Enabling outgoing links in documents that cannot be modified to add an inline link</p></item><item><p>Creating links to and from resources in formats with no native support for embedded links (such as most multimedia formats)</p></item><item><p>Applying and filtering sets of relevant links on demand</p></item><item><p>Enabling other advanced hypermedia capabilities</p></item></ulist>
	</p>
        <p>Application software might be expected to provide traversal among all of a link&apos;s participating resources (subject to semantic constraints outside the scope of this specification) and to signal the fact that a given resource or sub-resource participates in one or more links when it is displayed (even though there is no markup at exactly that point to signal it).</p>
        <p>A linking element for an extended link contains a series of <xtermref href="http://www.w3.org/TR/REC-xml/#dt-parentchild">child elements</xtermref> that serve as locators and arcs. Because an extended link can have more than one remote resource, it separates out linking itself from the mechanisms used to locate each resource (whereas a simple link combines the two).</p>
        <p>The <code>xlink:type</code> attribute value for an extended link must be <code> extended</code>, if the link is being instantiated on an arbitrary element. Note that extended links introduce variants of the <code>show</code> and <code>actuate</code> behavior attributes. These attributes, the <code>showdefault</code> and <code>actuatedefault</code> define the same behavior as their counterparts. However, in this case, they are considered to define the default behavior for all the linking elements that they contain.</p>
        <p>However, when a linking element within an extended link has a <code>show</code> or <code>actuate</code> attribute of its own, that attribute overrides the defaults set on the extended linking element.</p>
        <p>The extended linking element itself retains those attributes relevant to the link as a whole, and to its local resource if any. Following are two sample declaration for an extended link. The first is an example of the explicit XLink extended link:
	
<eg>&lt;!ELEMENT xlink:extended ((xlink:arc | xlink:locator)*)&gt;
&lt;!ATTLIST xlink:extended
	role           CDATA    				#IMPLIED
	title          CDATA    				#IMPLIED
	showdefault    (new|parsed|replace)    	#IMPLIED 
    actuatedefault (user|auto) 				#IMPLIED &gt;</eg>

	The second is an example of an arbitrary element being used an extended link:

<eg>&lt;!ELEMENT foo ((xlink:arc | xlink:locator)*)&gt;
&lt;!ATTLIST foo
	xlink:type     	(simple|extended|locator|arc) 	#FIXED &quot;extended&quot;
	xlink:role           CDATA    					#IMPLIED
	xlink:title          CDATA    					#IMPLIED
	xlink:showdefault    (new|parsed|replace)    	#IMPLIED 
    xlink:actuatedefault (user|auto) 				#IMPLIED &gt;</eg>

	The following two examples demonstrate how each of the above might appear within a document instance. Note that the content of these examples would be other elements. For brevity&apos;s sake, they&apos;ve been left blank. The first example shows how the link might appear, using an explicit XLink extended link:

<eg>&lt;xlink:extended role=&quot;address book&quot; title=&quot;Ben&apos;s Address Book&quot; showdefault=&quot;replace&quot; actuatedefault=&quot;user&quot;&gt; ... &lt;/xlink:extended&gt;</eg>

	And the second shows how the link might appear, using an arbitrary element:

<eg>&lt;foo xlink:type=&quot;extended&quot; xlink:role=&quot;address book&quot; xlink:title=&quot;Ben&apos;s Address Book&quot; xlink:showdefault=&quot;replace&quot; xlink:actuatedefault=&quot;user&quot;&gt; ... &lt;/foo&gt;</eg>
	</p>
      </div2>
      <div2 id="xlink-arcs">
        <head>Arc Elements</head>
        <p><termdef id="dt-arc" term="Arc">An <term>arc</term> is contained within an extended link for the purpose of defining traversal behavior.</termdef> More than one arc may be associated with a link. Otherwise, arc elements function exactly as the arc attributes might lead on to expect.</p>
<!-- More here? -bent -->
      </div2>
    </div1>
    <div1>
      <head>Conformance</head>
      <p>An element conforms to XLink if:  <olist><item><p>The element has an <code>xml:link</code> attribute whose value is
one of the attribute values prescribed by this specification, and</p></item><item><p>the element and all of its attributes and content adhere to the
syntactic
requirements imposed by the chosen <code>xml:link</code> attribute value,
as prescribed in this specification.</p></item></olist></p>
      <p>Note that conformance is assessed at the level of individual elements,
rather than whole XML documents, because XLink and non-XLink linking mechanisms
may be used side by side in any one document.</p>
      <p>An application conforms to XLink if it interprets XLink-conforming elements
according to all required semantics prescribed by this specification and,
for any optional semantics it chooses to support, supports them in the way
prescribed. <!--If/when we split out the XLinkfunctionality
(e.g. inline links and out-of-line links), the
conformance language will have to address the different
levels of support. -elm--> </p>
    </div1>
  </body>
  <back>
    <div1 id="unfinished">
      <head>Unfinished Work</head>
      <div2>
        <head>Structured Titles</head>
        <p>The simple title mechanism described in this draft is insufficient to cope
with internationalization or the use of multimedia in link titles. A future
version will provide a mechanism for the use of structured link titles.</p>
      </div2>
    </div1>
    <div1>
      <head>References</head>
      <blist>
        <bibl id="xptr" key="XPTR">Eve Maler and Steve DeRose, editors. <titleref>
XML Pointer Language (XPointer) V1.0</titleref>. ArborText, Inso, and Brown
University. Burlington, Seekonk, et al.: World Wide Web Consortium, 1998.
(See <loc href="http://www.w3.org/TR/WD-xptr">http://www.w3.org/TR/WD-xptr
 </loc>.)</bibl>
        <bibl id="iso10744" key="ISO/IEC 10744">ISO (International Organization for
Standardization). <titleref>ISO/IEC 10744-1992 (E). Information technology
- Hypermedia/Time-based Structuring Language (HyTime).</titleref> [Geneva]:
International Organization for Standardization, 1992. <titleref>Extended
Facilities
Annex.</titleref> [Geneva]: International Organization for Standardization,
1996. (See  <loc href="http://www.ornl.gov/sgml/wg8/hytime/html/is10744r.html">http://www.ornl.go
v/sgml/wg8/hytime/html/is10744r.html </loc> <!--p m-r says this link is
broken. elm --> ).</bibl>
        <bibl id="rfc1738" key="IETF RFC 1738">IETF (Internet Engineering Task
Force). <titleref>
RFC 1738: Uniform Resource Locators</titleref>. 1991. (See  <loc href="http://www.w3.org/Addressing/rfc1738.txt">
http://www.w3.org/Addressing/rfc1738.txt</loc>).</bibl>
        <bibl id="rfc1808" key="IETF RFC 1808">IETF (Internet Engineering Task
Force). <titleref>
RFC 1808: Relative Uniform Resource Locators</titleref>. 1995. (See  <loc href="http://www.w3.org/Addressing/rfc1808.txt">http://www.w3.org/Addressing/rfc
1808.txt </loc>).</bibl>
        <bibl id="tei" key="TEI">C. M. Sperberg-McQueen and Lou Burnard, editors.
<titleref>
Guidelines for Electronic Text Encoding and Interchange</titleref>. Association
for Computers and the Humanities (ACH), Association for Computational
Linguistics
(ACL), and Association for Literary and Linguistic Computing (ALLC). Chicago,
Oxford: Text Encoding Initiative, 1994. <!-- add cite to DOM work --> </bibl>
        <bibl id="chum" key="CHUM">]Steven J. DeRose and David G. Durand. 1995. &quot;The
TEI Hypertext Guidelines.&quot; In <titleref>Computing and the Humanities
</titleref>29(3).
Reprinted in <titleref>Text Encoding Initiative: Background and
Context</titleref>,
ed. Nancy Ide and Jean ronis <!-- fix this name -->, ISBN 0-7923-3704-2. </bibl>
      </blist>
    </div1>
  </back>
</spec>
<?Pub *0000052575?>
