Ссылки между документами

В каждом документе, который использует ссылки (исключая ссылки на ресурсы URL), должна быть определена сущность &BASEID;. Значение &BASEID; должно совпадать с расположением документа в иерархии документов. Например, для этого документа &BASEID; равно alt.devel.docs-howto.

Для ссылок (в общем случае) используется атрибут id, который должен быть уникален в пределах всего документа. При объединении документов он должен быть уникален в пределах всех документов, поэтому его значение должно начинаться с сущности &BASEID;, например, id=&BASEID; для корневого тега документа, или id=&BASEID;.intro для раздела со вступлением.

Подсказка

Атрибут id входит в набор общих атрибутов DocBook и его можно указывать для любого тега.

Для создания ссылки внутри одного документа можно воспользоваться несколькими тегами:

xref

Ссылка с пустым содержимым. Текст ссылки генерируется из того места, куда она указывает. Удобно использовать для ссылок на разделы, не указывая их название — оно будет подставлено в текст ссылки автоматически.

link

Обычная ссылка на идентификатор в документе, может содержать текст.

ulink

Ссылка на сетевой ресурс (например, на web-сайт), заданный с помощью URL.

olink

Ссылка на место в другом XML документе. Может быть пустой, тогда текст генерируется из места назначения. На этапе создания такой ссылки ещё неизвестно, как будет сформирован вывод другого документа (и куда она должна в итоге указывать), поэтому ссылка указывается не напрямую, а с дополнительным именем документа. Для того, чтобы такие ссылки работали, должна создаваться база ссылок для каждого возможного выходного формата.

Пример 3.3. Ссылка на другой XML документ

<olink targetdoc="docs-howto" targetptr="alt.devel.docs-howto.welcome">
Добро пожаловать!
</olink>                  

В этом примере ссылка указывает на идентификатор alt.devel.docs-howto.welcome в документе docs-howto. При обработке документа ссылка разрешается с помощью общей базы ссылок (указывается параметром для XSL-стилей).

Замечание

В оригинальной документации DocBook находится устаревшее описание olink. Хорошее описание ссылок между документами можно найти в документации Роберта Стейтона.