The @href attribute

The @href attribute is used to reference another DITA topic or map, a specific element inside a DITA topic or map, an external Web page, or another non-DITA resource.

The value of a DITA @href attribute must be a valid URI reference [RFC 3986]. It is an error if the value is not a valid URI reference. An implementation MAY generate an error message; it MAY recover from this error condition by attempting to convert the value to a valid URI reference. Note that the path separator character in a URI is the forward slash (/); the backward slash character (\) is not permitted unescaped within URIs.

When an @href attribute references a DITA resource, an @href value that consists of a URI without a fragment identifier resolves to the document element in the referenced document. For the purposes of rendering, such as when a <topicref> reference to a DITA document is used to render the content as HTML, this means that all topics (and topic specializations) in the target document are included in the reference. For the purpose of linking, the reference resolves to the first (or only) topic (or topic specialization) in the document.

An @href value that consists of a URI with a fragment identifier must have a DITA local identifier as the portion after the hash. A DITA local identifier consists of topicID/elementID for a subelement of a topic, and of elementID for topics, maps, and subelements of a map. If the topic referenced by a DITA local identifier is for the same topic, then topicID can be replaced by a period; see Processing xrefs and conrefs within a conref for more information on how this syntax relates to conref resolution.

Note that certain characters - including but not limited to the hash sign ("#"), question mark ("?"), back slash ("\"), and space - are not permitted unescaped within URIs. Such characters must be percent-encoded. Also note that the ampersand ("&") and less than (<) characters are not permitted in XML attribute values; they must be represented by appropriate character or entity references. Some tools might perform this encoding automatically, while other tools might require that users either avoid the special characters or manually insert the encoding.

Example: Common syntax for the @href attribute

The following table includes some examples of common @href syntax. Note that these examples represent only a few common scenarios and are not all inclusive.

Target Syntax
The first topic in a DITA document href="file.dita"
A specific topic in a DITA document href="file.dita#topicid"
A non-topic element inside a DITA topic href="#topicid/elementid"
A non-topic element inside the same DITA topic as the reference href="#./elementid"
An element in a DITA map href="myMap.ditamap#map-branch"
An image href="exampleImage.jpg"
An external resource href="http://www.example.org"

where:

  • topicid is the value of the @id attribute on the DITA topic.
  • elementid is the value of the @id attribute on the (non-topic) DITA element.
  • map-branch is the value of the @id attribute on the DITA map element.