XML и сборка интерфейсов. Мысли о том, как сделать легко настраиваемый интерфейс.

Стояли вчера в падике и пили вино %) и тут я подумал внезапно, почему бы не сделать сборку интерфейсов (считай, xhtml страничек) на основе XML, используя при этом подход, который есть в плагинах для Firefox и других Gecko-приложений.

При написании плагина для FF, если мы хотим изменить каким-то образом окно браузера, например, добавить выпадающее меню в статус-бар, мы пишем специальный XUL файл, который содержит в себе специфическую XUL разметку (XUL - это по-сути XML). Дальше, в файле chrome.manifest указываем:

overlay chrome://browser/content/browser.xul chrome://sample/content/sample.xul

Это означает, что мы просим объединить 2 файла: наш XUL-файл и дефолтный XUL-файл браузера. Преимущество такого подхода в том, что XML всегда валидный и его легко объединить с другим XML’ем (при помощи XSLT).

Прикиньте, насколько бы облегчилось написание плагинов для Wordpress со стороны встраивания новых блоков на сайт и изменения существующих? Или, например, как прикольно при таком подходе ваять админки для сайтов, или специализированные панели управления? Я просто ссусь кипятком.

Я уверен, что такой подход некоторый продвинутый народ усиленно юзает в своих CMSках и движках. Более того, например xpoint.ru полностью построен на таком подходею И это круто.

При таком подходе, мы на выходе контроллера получаем кусок XML’я (то есть чистые форматированные данные). Дальше, присоединяя к нему различные XSL шаблоны, конвертируем эти данные в любой формат, хоть в RSS, хоть в HTML, или даже в PDF. Круто ведь?

Есть тут и минусы

  1. Нужно знать XSLT
  2. Нужно придумывать язык разметки для каждого интерфейса (возможно, конечно, его более-менее унифицировать)
  3. В данный момент не все браузеры умеют обрабатывать XSTL, поэтому нам приходится делать это на стороне сервера. Отсюда какая-никакая, но нагрузка. (хотя этот пункт можно не считать за минус)

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

Чмоке.

Also interesting

  • No Related Post

One Response to “XML и сборка интерфейсов. Мысли о том, как сделать легко настраиваемый интерфейс.”

  1. ainu says:

    Идея крута. Жаль, XLST всё таки тот ещё орех, особенно на реальных проектах.
    Только плохо, что XML (XHTML) это по сути представление и его объедигнять всё-таки плохо. Логика не там должна находиться.

Leave a Reply