XBL (XML Binding Language)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 15:59, 16 апреля 2018.
XBL (XML Binding Language)
Расширение файла .xbl
Однородный идентификатор типа (UTI) public.xbl
UTI конфигурация public.text
Разработчик Консорциум Всемирной паутины
Тип формата язык разметки
Расширенный от SGML
Расширенный XHTML, RSS, Atom, KML, SVG и множество других форматов
Открытый формат? да

XBL - это язык разметки на основе XML, используемый для объявления поведения и вида XUL-виджетов и элементов XML. Разработка спецификации XBL была отменена в 2012 году. [Источник 1].

История появления

XBL был разработан проектом Mozilla для использования в пакете приложений Mozilla; язык в настоящее время не описывается каким-либо формальным стандартом и, таким образом, принадлежит Mozilla, причем единственной реализацией является механизм компоновки Gecko. XBL 2.0 - это последняя версия XBL. XBL 1.0 был впервые разработан в Netscape в 2000 году и объявлен в 2001 году. Первоначально XBL был разработан и реализован как часть платформы Mozilla наряду с языком XUL, поэтому XBL доступен в большинстве продуктов на базе Mozilla: Firefox, Thunderbird, SeaMonkey и т. д.

В августе 2015 года Mozilla объявила, что использование XBL для создания надстроек Firefox в будущем будет устаревать в пользу WebExtensions. Pale Moon, развилка Firefox, будет продолжать поддерживать XBL на неопределенный срок.[Источник 2].

Принцип работы XBL

В XUL определяется макет пользовательского интерфейса приложения, а затем, применяя «стили», можно настроить внешний вид различных элементов. Недостатком является то, что XUL не предоставляет никаких средств для изменения функции элемента. Например, можно изменить способ работы элементов полосы прокрутки. Здесь появляется XBL.

Файл XBL содержит «привязки», каждый из которых описывает поведение XUL-виджета или элемента XML. Например, привязка может быть привязана к полосе прокрутки. Поведение описывает свойства и методы полосы прокрутки, а также описывает элементы XUL, определяющие полосу прокрутки.

Корневым элементом XBL-файла является элемент <bindings>, который содержит один или несколько элементов <binding>. Каждый элемент <binding> объявляет одно связывание, которое может быть присоединено к любому элементу XUL. Он также может обладать атрибутом id. Связывание присваивается элементу, устанавливая свойство CSS Связывание присваивается элементу путем установки свойства CSS -moz-binding к URL-адресу файла привязки.

Пример:

scrollbar {
 -moz-binding: url('somefile.xml#binding1');
}

Элементы XBL

Элемент привязки

Элемент привязки описывает одну привязку XBL, которая добавляет представление и интерактивное поведение к элементам XML или HTML. Каждое связывание имеет следующие дополнительные компоненты:

Методы, свойства и поля: привязка может указывать дополнительные методы, которые могут быть вызваны элементом. Он также может указывать дополнительные свойства и поля, которые можно получить или установить на элементе. Таким образом, функциональность связанного элемента становится расширяемой. Шаблон: необязательный шаблон определяет начальное теневое содержимое связанного элемента.

Привязки могут действовать как механизм привязки, указывая элементы для связывания с данным связыванием при импорте привязки с использованием атрибута element.

Элемент привязки определяет привязку представления и поведения. Он не определяет семантику элемента. Если элемент не имеет семантики при обработке в одиночку, тогда он не имеет семантики при обработке с помощью XBL.

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

Элемент реализации

Элемент реализации описывает набор методов, свойств и полей, которые привязаны к связанному элементу. После привязки привязки эти методы, свойства и поля могут быть вызваны непосредственно из связанного элемента.

Элемент шаблона

Элемент шаблона содержит произвольные элементы потомков. Когда привязка привязана, дочерние узлы элемента шаблона клонируются и прикрепляются к связанному документу под связанным элементом. Динамические изменения потомков элементов шаблона отражаются в привязках. Семантика элементов, отличных от XBL внутри этого элемента, нетронута, что может привести к неинтуитивным результатам.

Элемент контента

Элемент контента используется в теневом контенте, чтобы указать, где в теневое дерево вставляются явные дочерние элементы, которые могут уже существовать под связанным элементом. Что касается модели представления, то любой теневой контент места привязки между связанным элементом и элементами контента чередуются между связанным элементом и его явными дочерними элементами, не затрагивая модель документа.

Если атрибут имеет дочерние элементы связанного элемента, назначенные ему, то эти дети вставляются в окончательное сплющенное дерево вместо элемента контента. В противном случае дочерние элементы элемента контента вставляются в окончательное сплющенное дерево вместо элемента содержимого.

Унаследованный элемент

Унаследованный элемент представляет собой место, где должно быть вставлено следующее унаследованное теневое дерево. Если привязка является базовым связыванием или если ни одна из привязок, наследуемых им, не имеет теневых деревьев или если это не первый унаследованный элемент в теневом дереве привязки, тогда содержимое унаследованного элемента.

Атрибуты атрибутов

Атрибут атрибутов - это глобальный атрибут, который указывает, какие атрибуты связанного элемента должны быть переадресованы элементу, по которому этот атрибут будет найден при клонировании шаблона теневого контента. Это список разделенных пробелами пар имен атрибутов, разделенных равными знаками, каждый из которых может быть помечен хэш-символом («#») и обозначением типа.

Псевдо атрибут

Атрибут псевдо является глобальным атрибутом, который указывает псевдоэлемент, который при использовании связанного элемента должен быть сопоставлен с элементом, на котором найден атрибут.[Источник 3].

Актуальное положение XBL

Последняя версия спецификации, называемая XBL 2.0, была разработана для решения проблем XBL 1.0 и для реализации с более широким диапазоном веб-браузеров. Рекомендация кандидата по спецификации была выпущена W3C в марте 2007 года. Спецификация не была реализована другими поставщиками браузеров. Работа над спецификацией XBL 2.0 была отменена рабочей группой W3C в 2012 году.

Источники

  1. XBL // Wikipedia [2001–2018]. URL:https://en.wikipedia.org/wiki/XBL(Дата обращения: 16.04.2018).
  2. XBL // Официальный сайт W3 [1999–2018]. URL: https://www.w3.org/TR/xbl/#the-binding-element (Дата обращения: 16.04.2018).
  3. XBL // Официальный сайт Mozilla [2002–2018]. URL:https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XBL (Дата обращения: 16.04.2018).