Открыть сервис

XLink

XLink (XML Linking Language) — это язык разметки на основе XML, предназначенный для описания связей (гиперссылок) между XML-документами и их элементами. Разработан консорциумом W3C (World Wide Web Consortium) и принят в качестве рекомендации (W3C Recommendation) в 2001 году. XLink расширяет возможности традиционных HTML-ссылок, позволяя создавать многоцелевые, многонаправленные и семантически насыщенные связи, включая ссылки на несколько ресурсов, ссылки с метаданными и ссылки для встраивания содержимого.

История и стандартизация

Разработка XLink началась в конце 1990-х годов как часть более широкой инициативы W3C по созданию стандартов для семантической паутины (Semantic Web). Первая рабочая версия была опубликована в 1998 году. После нескольких ревизий и учёта замечаний от сообщества разработчиков, 27 июня 2001 года была опубликована финальная версия спецификации «XML Linking Language (XLink) Version 1.0». Стандарт остаётся неизменным с 2001 года, и последующие версии не выпускались. В 2010 году W3C подтвердил статус XLink как действующей рекомендации, хотя практическое внедрение технологии в веб-браузерах осталось ограниченным.

Основные концепции

XLink оперирует несколькими ключевыми понятиями, отличающими его от простых ссылок HTML.

Типы ссылок

XLink определяет два основных типа связей:

  • Простая ссылка (simple link) — аналог HTML-ссылки <a href="...">. Она связывает один исходный элемент с одним целевым ресурсом. В отличие от HTML, простая ссылка XLink может быть прикреплена к любому XML-элементу, а не только к тегу <a>.
  • Расширенная ссылка (extended link) — более сложная конструкция, позволяющая связывать несколько ресурсов (как исходных, так и целевых). Расширенная ссылка состоит из нескольких вложенных элементов, называемых «локальными» (находятся в том же документе) и «удалёнными» (указывают на внешние ресурсы). Это позволяет, например, создавать карты связей между несколькими документами или элементами.

Атрибуты XLink

Для описания поведения ссылки XLink использует атрибуты из пространства имён http://www.w3.org/1999/xlink`. Основные из них:

  • xlink:type — определяет тип ссылки (simple или extended), а также типы её компонентов (locator, arc, resource, title).
  • xlink:href — содержит URI (Uniform Resource Identifier) целевого ресурса. Аналог атрибута href в HTML.
  • xlink:role — описывает семантическую роль целевого ресурса (например, «глоссарий», «изображение», «комментарий»). Значение — URI, указывающий на описание роли.
  • xlink:title — предоставляет человекочитаемое описание ссылки (например, всплывающая подсказка).
  • xlink:show — определяет, как целевой ресурс должен отображаться: new (в новом окне), replace (заменить текущий документ), embed (встроить содержимое в текущий документ), other (зависит от приложения) или none (не указано).
  • xlink:actuate — задаёт момент активации ссылки: onLoad (загрузить автоматически при загрузке документа), onRequest (по запросу пользователя, например, по клику), other или none.

Пространство имён

Все атрибуты и элементы XLink должны быть объявлены с использованием пространства имён xmlns:xlink="http://www.w3.org/1999/xlink"`. Это позволяет использовать XLink совместно с другими XML-словарями, такими как SVG (Scalable Vector Graphics) или MathML (Mathematical Markup Language).

Примеры использования

Простая ссылка в SVG

В векторной графике SVG XLink используется для создания гиперссылок на фигурах или тексте. Пример:

``xml <svg xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink">; <a xlink:href="https://example.com"; xlink:title="Посетить сайт"> <rect x="10" y="10" width="100" height="50" fill="blue"/> </a> </svg> ``

Здесь атрибут xlink:href задаёт целевой URL, а xlink:title — всплывающую подсказку.

Расширенная ссылка в документе

Расширенная ссылка может связывать несколько элементов в одном документе. Например, в технической документации можно связать термин, его определение и примечание:

``xml <my:link xmls:my="http://example.org/my"; xmlns:xlink="http://www.w3.org/1999/xlink"; xlink:type="extended"> <my:locator xlink:type="locator" xlink:href="#term1" xlink:label="term"/> <my:locator xlink:type="locator" xlink:href="#def1" xlink:label="definition"/> <my:locator xlink:type="locator" xlink:href="#note1" xlink:label="note"/> <my:arc xlink:type="arc" xlink:from="term" xlink:to="definition" xlink:arcrole="http://example.org/roles/explains"/>; <my:arc xlink:type="arc" xlink:from="term" xlink:to="note" xlink:arcrole="http://example.org/roles/notes"/>; </my:link> ``

В этом примере создаётся связь: термин (элемент с id="term1") объясняется определением (id="def1") и дополняется примечанием (id="note1"). Атрибут xlink:arcrole задаёт семантическую роль связи.

Применение

XLink нашёл применение в нескольких областях:

  • SVG (Scalable Vector Graphics) — для создания гиперссылок на графических объектах. В спецификации SVG 1.1 и 2.0 XLink является обязательным компонентом.
  • MathML (Mathematical Markup Language) — для связывания математических формул с внешними ресурсами (например, с определениями символов).
  • DocBook — формат для технической документации, где XLink используется для создания перекрёстных ссылок между разделами.
  • RDF/XML (Resource Description Framework) — в некоторых реализациях для описания связей между ресурсами.
  • XML-схемы (XSD) — для ссылок на внешние типы данных.

Критика и ограничения

Несмотря на теоретическую мощь, XLink не получил широкого распространения в вебе. Основные причины:

  • Сложность — расширенные ссылки требуют значительного объёма разметки и сложны для ручного написания.
  • Отсутствие поддержки в браузерах — ни один из основных веб-браузеров (Google Chrome, Mozilla Firefox, Safari, Microsoft Edge) не реализовал полную поддержку XLink для HTML-документов. Поддержка ограничена только SVG и MathML.
  • Конкуренция с HTML-ссылками — простые гиперссылки в HTML (<a href="...">) проще, быстрее и лучше поддерживаются.
  • Отсутствие инструментов — недостаток редакторов и библиотек, автоматизирующих создание и обработку XLink.

Связь с другими технологиями

XLink является частью семейства XML-стандартов W3C, включающего также XPointer (XML Pointer Language) — язык для указания на конкретные фрагменты XML-документов, и XSLT (Extensible Stylesheet Language Transformations) — язык преобразования XML-документов. Вместе они образуют инфраструктуру для создания сложных гипертекстовых систем на основе XML.

Источники

  • W3C Recommendation: XML Linking Language (XLink) Version 1.0 (2001)
  • W3C Recommendation: XML Linking Language (XLink) Version 1.1 (2010) — подтверждение статуса
  • Спецификация SVG 2.0 (W3C, 2018)
  • Спецификация MathML 3.0 (W3C, 2014)
  • Документация DocBook 5.1 (OASIS, 2016)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →