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 →