HTML: The Definitive Guide

Previous Chapter 6 Next
 

6.7 Establishing Document Relationships

Very few HTML documents stand alone. Instead, a document is usually part of a collection of documents, each connected by the one or several of the hypertext strands we describe in this chapter. One document may be a part of several collections, linking to some documents and being linked to by others. Readers move between the document families as they follow the links that interest them.

You establish an explicit relationship between two documents when you link them. Conscientious authors use the rel attribute of the <a> tag to indicate the nature of the link. In addition, two other tags may be used within a document to further clarify the location and relationship of a document within a document family. These tags, <base> and <link>, are placed within the body of the <head> tag. [<head>, 3.6.1]

The <base> Header Element

As we previously explained, URLs within a document can be either absolute--with every element of the URL explicitly provided by the author--or relative, with certain elements of the URL omitted and supplied by the browser. Normally, the browser fills in the blanks of a relative URL by drawing the missing pieces from the URL of the current document. You can change that with the <base> tag.

The <base> tag must appear only in the document header, not its body contents. The browser thereafter uses the specified base URL, not the current document's URL, to resolve all relative URLs, including those found in <a>, <img>, <link>, and <form> tags. It also defines the URL that will be used to resolve queries in searchable documents containing the <isindex> tag. [URLs, 6.2]

The href attribute

The <base> tag has only one required attribute: href. It must have a valid URL as its value. For example, the <base> tag in this document head,

<html>
<head>
<base href="http://www.kumquat.com/">
</head>
...

tells the browser that any relative URLs within this document are relative to the top-level document directory on www.kumquat.com, regardless of the address and directory of the machine from which the user had retrieved the current document.

Notice in the example that, contrary to what you may have expected, we made the base URL relative, not absolute. The browser actually forms an absolute base URL out of this relative URL by filling in the missing pieces with the URL of the document itself. This property can be used to good advantage. For instance, in this next example,

<html>
<head>
<base href="/info/">
</head>
...

the browser will make the <base> URL into one that is relative to the server's /info/ directory, which probably is not the same directory of the current document. Imagine if you had to re-address every link in your document with that common directory. Not only does the <base> tag help you shorten those URLs in your document that have a common root, it also lets you constrain the directory from which relative references are retrieved without binding the document to a specific server.

The target attribute

As mentioned earlier in this chapter while describing the target <a> tag attribute, the latest version of Netscape (2.0) includes a special HTML document type known as a frame. A frame document may display several HTML documents simultaneously. Similar to the href attribute, the target attribute for the <base> tag lets you establish the default name of one of the frames or windows in which Netscape is to display redirected hyperlinked documents. [frames, 10.1]

Using <base>

The most important reason for using <base> is to ensure that any relative URLs within the document will resolve into a correct document address, even if the document itself is moved or renamed. This is particularly important when creating a document collection. By placing the correct <base> tag in each document, you can move the entire collection between directories and even servers without breaking all of the links within the documents.

You also need to use the <base> tag for a searchable document (<isindex>) if you want user queries posed to a URL different from the host document.

Note that a document that contains both the <isindex> tag and other relative URLs may have problems if the relative URLs are not relative to the desired index processing URL. Since this is usually the case, do not use relative URLs in searchable documents that use the <base> tag to specify the query URL for the document.

The <link> Header Element

Use the <link> tag to define the relationship between the current document and another in a Web collection.

The <link> tags belongs in the <head> content, nowhere else. The attributes of the <link> tag are identical to that of the <a> tag, but their effects serve only to document the relationship between documents. The <link> tag has no content and no closing </link> element.

The href attribute

As with its other tag applications, the href attribute specifies the URL of the target <link> tag. It is a required attribute, too, and its value is any valid document URL. The specified document is assumed to have a relationship to the current document.

The methods attribute

The methods attribute tells the browser which methods process the document referenced by the href attribute. The value of the attribute is a space-separated list of names, each representing a particular method. The browser may then use the specified methods when retrieving and displaying the target document.

In practice, the methods attribute is hardly ever used. It is too browser-dependent, requiring that the browser understand the methods specified and be able to process the document accordingly.

The rel and rev attributes

The rel and rev attributes express the relationship between the source and target documents. The rel attribute specifies the relationship from the source document to the target; the rev attribute specifies the relationship from the target document to the source document. Both attributes can be included in a single <link> tag.

The value of either attribute is a space-separated list of relationships. The actual relationship names are not specified by the HTML standard, although some have come into common usage as listed in 6.3.1.5. For example, a document that is part of a sequence of documents might use:

<link href="part-14.html" rel=next rev=prev>

when referencing the next document in the series. The relationship from the source to the target is that of moving to the next document; the reverse relationship is that of moving to the previous document.

The title attribute

The title attribute lets you specify the title of the document to which you are linking. This attribute is useful when referencing a resource that does not have a title, such as an image or a non-HTML document. In this case, the browser might use the <link> title when displaying the referenced document. For example,

<link href="pics/kumquat.gif" 
  title="A photograph of the Noble Fruit">

tells the browser to use the indicated title when displaying the referenced image.

The value of the attribute is an arbitrary character string, enclosed in quotes.

The urn attribute

The urn attribute defines the more general Universal Resource Name for the referenced document. The value of this attribute is a string, the actual syntax and semantics of which have not yet been defined, making this attribute little more than a place keeper for future versions of HTML that can better exploit the document URN.

How browsers might use <link>

Although the HTML standard does not require browsers to do anything with the information provided by the <link> tag, it's not hard to envision how this information might be used to enhance the presentation of a document.

As a simple example, suppose you consistently provide <link> tags for each of your documents that define next, prev, and parent links. A browser could use this information to place a standard toolbar at the top or bottom of each document containing buttons that would jump to the appropriate related document. By relegating the task of providing simple navigational links to the browser, you are free to concentrate on the more important content of your document.

As a more complex example, suppose a browser expects to find a <link> tag defining a glossary for the current document, and that this glossary document is itself a searchable document. Whenever a reader clicked on a word or phrase in the document, the browser could automatically search the glossary for the definition of the selected phrase, presenting the result in a small pop-up window.

As the Web and HTML evolve, expect to see more and more uses of the <link> tag to explicitly define document relationships on the Web.


Previous Home Next
Creating Searchable Documents Book Index Supporting Document Automation