Элемент fo:basic-link
предназначен для создания ссылок в стиле гиперссылок HTML. Это внутри-строчный форматирующий объект, который можно кликнуть, чтобы перейти к другому документу или к другому месту текущего документа. Он не нужен в печатных документах, но пригодится, когда веб-браузеры будут прямо поддерживать XSL-FO. Поведение ссылки контролируется восемью атрибутами:
external-destination
internal-destination
indicate-destination
show-destination
destination-placement-offset
target-presentation-context
target-processing-context
target-stylesheet
Ссылка на удаленный документ-цель определяется URI в значении атрибута external-destination
. Если пользователь активирует ссылку, браузер должен будет заменить текущий документ на документ с соответствующим URI. В большинстве графических интерфейсов пользователь активирует ссылку, кликая по ней мышью. Пример использования ссылки:
<fo:block> Be sure to visit the <fo:basic-link external-destination="http://www.ibiblio.org/xml/"> Cafe con Leche Web site! </fo:basic-link> </fo:block>
Кроме того, можно ссылаться на другой узел текущего документа, используя атрибут internal-destination
. Значение этого атрибута - не URI, а идентификатор ID элемента, на который указывает ссылка. Тут можно использовать функцию XSLT generate-id()
, которая генерирует и идентификатор элемента-цели и ссылку на этот элемент внутри одного выходного XSL-FO-документа. Не следует использовать в одной ссылке одновременно указание на внешнюю и внутреннюю цель.
Три атрибута цели влияют на внешний вид и поведение ссылки. Атрибут indicate-destination
имеет булевское значение (true
или false
; по умолчанию false
), которое определяет, должен ли объект, на который указывает ссылка, при загрузке как-то выделяться на фоне остальных частей того же самого документа. Например, если пойти по ссылке на один из элементов ATOM
в таблице из ста химических элементов, атом, на который указывала ссылка, может быть выделен полужирным шрифтом. Детали зависят от конкретной системы.
Атрибут show-destination
имеет два возможных значения: replace
(по умолчанию) и new
. При значении атрибута replace
при активации ссылки документ-цель заменяет в окне исходный документ. При значении new
, при активации ссылки браузер открывает новое окно, в котором отображается документ-цель.
Когда браузер следует по HTML-ссылке в середину документа, заданный в ссылке объект-цель оказывается на самом верху окна браузера. Атрибут destination-placement-offset
определяет, насколько должен браузер прокрутить данный объект в окне браузера вниз. Атрибут задается как длина прокрутки, например, 3in
или 156px
.
Три свойства цели описывают особенности отображения документа на другом конце ссылки. Атрибут target-presentation-context
содержит URI, который обычно показывает некоторое подмножество внешнего целевого документа, который должен быть показан пользователю. Например, здесь можно использовать XPointer, который укажет, что хотя и должна быть загружена целая книга, будет показана только ее седьмая глава.
Атрибут target-processing-context
содержит URI, который служит в качестве базового URI, в том случае, если внешний документ-цель содержит относительный URI. В ином случае он будет пониматься относительно текущего документа.
И наконец, атрибут target-stylesheet
содержит URI, который указывает на таблицу стилей, которая должна быть использована для отображения документа-цели. Эта таблица имеет приоритет над любой таблицей стилей, заданной в оригинальном документе-цели - будь то в процессуальной инструкции xml-stylesheet
, в HTML-элементе LINK
или в HTTP-заголовке.
Кроме того для ссылок могут использоваться обычные свойства-атрибуты, описывающие отступы и отбивки, фоновые изображения и границы, звуковые характеристики.